ui/cocoa/window.m

changeset 1174
8b8da1adef7d
parent 1126
bd1fe6134c1a
child 1175
1943f7411e50
--- a/ui/cocoa/window.m	Sat Jun 06 16:53:39 2026 +0200
+++ b/ui/cocoa/window.m	Sat Jun 06 18:04:54 2026 +0200
@@ -50,19 +50,23 @@
 static int splitview_window_default_pos = -1;
 static UiBool splitview_window_use_prop = TRUE;
 
+static void main_window_destroy(UiObject *obj) {
+    MainWindow *window = (__bridge MainWindow*)obj->wobj;
+    [[WindowManager sharedWindowManager] closeWindow:window];
+}
+
 static UiObject* create_window(const char *title, BOOL simple, BOOL sidebar, BOOL splitview) {
     UiObject *obj = uic_object_new_toplevel();
     
     MainWindow *window = [[MainWindow alloc] init:obj withSidebar:sidebar withSplitview:splitview];
-    [[WindowManager sharedWindowManager] addWindow:window];
-    window.releasedWhenClosed = false; // TODO: we still need a cleanup strategy
     
     obj->wobj = (__bridge void*)window;
+    obj->destroy = main_window_destroy;
     
     MainWindowController *controller = [[MainWindowController alloc] initWithWindow:obj window:window];
     window.windowController = controller;
     [window setNextResponder:(NSResponder*)controller];
-    objc_setAssociatedObject(window, "windowcontroller", controller, OBJC_ASSOCIATION_RETAIN);
+    [[WindowManager sharedWindowManager] addWindow:controller];
     
     return obj;
 }

mercurial