From a2926e03fd63d33cc84b6683e74406b673fc013c Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Tue, 12 Aug 2025 14:37:18 +0200 Subject: [PATCH] attach eventhandler to the dialog obj in DialogWindowBuilder --- .../src/main/java/de/unixwork/ui/DialogWindowBuilder.java | 5 ++++- ui-java/src/main/java/de/unixwork/ui/EventWrapper.java | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ui-java/src/main/java/de/unixwork/ui/DialogWindowBuilder.java b/ui-java/src/main/java/de/unixwork/ui/DialogWindowBuilder.java index 40a3857..c3ecd26 100644 --- a/ui-java/src/main/java/de/unixwork/ui/DialogWindowBuilder.java +++ b/ui-java/src/main/java/de/unixwork/ui/DialogWindowBuilder.java @@ -126,12 +126,15 @@ public class DialogWindowBuilder { ui.dialogwindow_args_set_height.invoke(args, height); if(onClick != null) { - EventWrapper event = new EventWrapper(onClick); + EventWrapper event = new EventWrapper(Toolkit.getInstance().eventHandler, MemorySegment.ofAddress(0)); ui.dialogwindow_args_set_onclick.invoke(args, event.getCallback()); ui.dialogwindow_args_set_onclickdata.invoke(args, event.getUserData()); } UiObject obj = UiObjectFuncs.instance.dialogWindow(parent.ptr, args); + if(onClick != null) { + obj.addEventHandler(onClick); + } ui.dialogwindow_args_free.invoke(args); return obj; diff --git a/ui-java/src/main/java/de/unixwork/ui/EventWrapper.java b/ui-java/src/main/java/de/unixwork/ui/EventWrapper.java index 5f72a7b..89d2d56 100644 --- a/ui-java/src/main/java/de/unixwork/ui/EventWrapper.java +++ b/ui-java/src/main/java/de/unixwork/ui/EventWrapper.java @@ -44,6 +44,11 @@ public class EventWrapper { this(handler, false); } + public EventWrapper(MemorySegment callback, MemorySegment userdata) { + this.callback = callback; + this.userdata = userdata; + } + public MemorySegment getCallback() { return callback; } -- 2.47.3