--- 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]; +}