From: Olaf Wintermann Date: Sat, 16 May 2026 12:13:12 +0000 (+0200) Subject: update window action bindings after UiModel action initialization X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=80baf5b6849dd40c89b58fce1640b10960af6377;p=note.git update window action bindings after UiModel action initialization --- diff --git a/ui-rs/src/ui/toolkit.rs b/ui-rs/src/ui/toolkit.rs index 64d518a..1923f29 100644 --- a/ui-rs/src/ui/toolkit.rs +++ b/ui-rs/src/ui/toolkit.rs @@ -796,6 +796,7 @@ extern "C" { fn ui_context_obj(ctx: *mut ffi::UiContext) -> *mut ffi::UiObject; fn ui_add_action(ctx: *mut ffi::UiContext, name: *const c_char, callback: UiCallback, data: *mut c_void); + pub fn ui_update_action_bindings(ctx: *mut ffi::UiContext); fn ui_int_new(ctx: *mut ffi::UiContext, name: *const c_char) -> *mut ffi::UiInteger; fn ui_double_new(ctx: *mut ffi::UiContext, name: *const c_char) -> *mut ffi::UiDouble; diff --git a/ui-rs/src/ui/window.rs b/ui-rs/src/ui/window.rs index cffd4d3..fe933e3 100644 --- a/ui-rs/src/ui/window.rs +++ b/ui-rs/src/ui/window.rs @@ -32,7 +32,7 @@ use std::ffi::{c_char, c_int, c_void}; use std::ffi::{c_uint, CString}; use std::marker::PhantomData; -use crate::ui::{event, event_wrapper_oneshot, ffi, toolkit, ui_object_ref, AppContext, EventWrapper, NoAppData, UiActions, UiModel}; +use crate::ui::{event, event_wrapper_oneshot, ffi, toolkit, ui_object_ref, ui_update_action_bindings, AppContext, EventWrapper, NoAppData, UiActions, UiModel}; use crate::ui::ffi::{UiButtonArgs, UiCallback, UiContext, UiDestructor, UiDialogArgs, UiObject}; use crate::ui::widget::widget_fn; @@ -112,6 +112,9 @@ where F: FnOnce(&mut toolkit::UiObject, &mut T) { // init view model wdata.init(&obj.ctx); wdata.init_actions(&mut obj.ctx); + unsafe { + ui_update_action_bindings(obj.ctx.ptr); + } // call ui building closure create_ui(&mut obj, wdata);