Restore correct support of fl_open_callback() under macOS 26 - cont'd
This commit is contained in:
parent
0b88a6c63b
commit
33f29ae481
@ -1716,12 +1716,19 @@ static void drain_dropped_files_list() {
|
||||
free(fname);
|
||||
}
|
||||
|
||||
static BOOL need_new_nsapp = NO;
|
||||
|
||||
/*
|
||||
* Install an open documents event handler...
|
||||
*/
|
||||
void Fl_Darwin_System_Driver::open_callback(void (*cb)(const char *)) {
|
||||
fl_open_display();
|
||||
((FLAppDelegate*)[NSApp delegate])->open_cb = cb;
|
||||
if (!NSApp) {
|
||||
need_new_nsapp = YES;
|
||||
[NSApplication sharedApplication];
|
||||
}
|
||||
FLAppDelegate *delegate = [FLAppDelegate alloc];
|
||||
[NSApp setDelegate:[delegate init]];
|
||||
delegate->open_cb = cb;
|
||||
}
|
||||
|
||||
@implementation FLApplication
|
||||
@ -1802,15 +1809,20 @@ void Fl_Cocoa_Screen_Driver::open_display_platform() {
|
||||
if ( !beenHereDoneThat ) {
|
||||
beenHereDoneThat = 1;
|
||||
|
||||
BOOL need_new_nsapp = (NSApp == nil);
|
||||
if (need_new_nsapp) [NSApplication sharedApplication];
|
||||
if (!NSApp) {
|
||||
need_new_nsapp = YES;
|
||||
[NSApplication sharedApplication];
|
||||
}
|
||||
NSAutoreleasePool *localPool;
|
||||
localPool = [[NSAutoreleasePool alloc] init]; // never released
|
||||
FLAppDelegate *delegate = [FLAppDelegate alloc];
|
||||
[(NSApplication*)NSApp setDelegate:[delegate init]];
|
||||
FLAppDelegate *delegate = [NSApp delegate];
|
||||
if (!delegate) {
|
||||
delegate = [FLAppDelegate alloc];
|
||||
[(NSApplication*)NSApp setDelegate:[delegate init]];
|
||||
}
|
||||
if (need_new_nsapp) {
|
||||
if (fl_mac_os_version >= 101300 && (fl_mac_os_version < 140000 ||
|
||||
(![NSApp isRunning] && ((FLAppDelegate*)[NSApp delegate])->open_cb)) &&
|
||||
if (fl_mac_os_version >= 101300 &&
|
||||
(fl_mac_os_version < 140000 || (![NSApp isRunning] && delegate->open_cb)) &&
|
||||
is_bundled()) {
|
||||
[NSApp activateIgnoringOtherApps:YES];
|
||||
in_nsapp_run = true;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user