]> uap-core.de Git - rssreader.git/commitdiff
attach eventhandler to the dialog obj in DialogWindowBuilder
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 12 Aug 2025 12:37:18 +0000 (14:37 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Tue, 12 Aug 2025 12:37:18 +0000 (14:37 +0200)
ui-java/src/main/java/de/unixwork/ui/DialogWindowBuilder.java
ui-java/src/main/java/de/unixwork/ui/EventWrapper.java

index 40a3857f9232927feca8c73cba2e72aad1cb9f02..c3ecd264ace740537df5c0bd065f3bd03481383f 100644 (file)
@@ -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;
index 5f72a7bef32133f72cc1cff5496f8c22fdbaaa1a..89d2d5622878d176bc1d80171e194b450bcee1aa 100644 (file)
@@ -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;
     }