Restore to commit f2424bf.

There remains a mysterious difference when dropping a file on an app icon
under macOS 26 between an app built with Xcode and one built with CMake.
This commit is contained in:
ManoloFLTK 2026-02-26 11:38:19 +01:00
parent 33f29ae481
commit 47b9156ac7

View File

@ -1716,19 +1716,12 @@ 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 *)) {
if (!NSApp) {
need_new_nsapp = YES;
[NSApplication sharedApplication];
}
FLAppDelegate *delegate = [FLAppDelegate alloc];
[NSApp setDelegate:[delegate init]];
delegate->open_cb = cb;
fl_open_display();
((FLAppDelegate*)[NSApp delegate])->open_cb = cb;
}
@implementation FLApplication
@ -1809,21 +1802,14 @@ void Fl_Cocoa_Screen_Driver::open_display_platform() {
if ( !beenHereDoneThat ) {
beenHereDoneThat = 1;
if (!NSApp) {
need_new_nsapp = YES;
[NSApplication sharedApplication];
}
BOOL need_new_nsapp = (NSApp == nil);
if (need_new_nsapp) [NSApplication sharedApplication];
NSAutoreleasePool *localPool;
localPool = [[NSAutoreleasePool alloc] init]; // never released
FLAppDelegate *delegate = [NSApp delegate];
if (!delegate) {
delegate = [FLAppDelegate alloc];
FLAppDelegate *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] && delegate->open_cb)) &&
is_bundled()) {
if (fl_mac_os_version >= 101300 && fl_mac_os_version < 140000 && is_bundled()) {
[NSApp activateIgnoringOtherApps:YES];
in_nsapp_run = true;
[NSApp run];