ui/cocoa/toolkit.m

changeset 721
e9f655afc7ed
parent 720
6fa3c629000f
child 800
814d374fb689
--- a/ui/cocoa/toolkit.m	Sun Aug 24 13:30:56 2025 +0200
+++ b/ui/cocoa/toolkit.m	Sun Aug 24 13:38:16 2025 +0200
@@ -37,7 +37,7 @@
 #import "image.h"
 #import "menu.h"
 #import "Toolbar.h"
-#import "UiJob.h"
+#import "UiThread.h"
 
 #import "AppDelegate.h"
 
@@ -167,6 +167,27 @@
     [thread start];
 }
 
-void ui_call_mainthread(ui_threadfunc tf, void* td) {
+@implementation UiAppCallback
+
+- (id) initWithCallback:(ui_threadfunc)func userdata:(void*)userdata {
+    self->callback = func;
+    self->userdata = userdata;
+    return self;
+}
 
+- (void) callMainThread {
+    [self performSelectorOnMainThread:@selector(mainThread:)
+                                   withObject:nil
+                                waitUntilDone:NO];
 }
+
+- (void) mainThread:(id)n {
+    callback(userdata);
+}
+
+@end
+
+void ui_call_mainthread(ui_threadfunc tf, void* td) {
+    UiAppCallback *cb = [[UiAppCallback alloc]initWithCallback:tf userdata:td];
+    [cb callMainThread];
+}

mercurial