]> uap-core.de Git - note.git/commitdiff
update window action bindings after UiModel action initialization
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 16 May 2026 12:13:12 +0000 (14:13 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 16 May 2026 12:13:12 +0000 (14:13 +0200)
ui-rs/src/ui/toolkit.rs
ui-rs/src/ui/window.rs

index 64d518ac369287deba6c28318976d1433e320926..1923f299e0d535aa906f8451579e62f6e341c6c1 100644 (file)
@@ -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;
index cffd4d33a8d7c33f47a35f01d28121ab5023b653..fe933e3e50aa186a60284ceb20750809d06f151c 100644 (file)
@@ -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<T>, &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);