diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-10-18 07:21:20 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-10-18 07:21:20 +0200 |
| commit | c27009e52c9a736a73be63a827a45a5c5c0b8bbf (patch) | |
| tree | 3da240c6abd8bf02c2477767ca3f100b9f0f0dd1 /src | |
| parent | 9f141aefc60a1eb7f0a55700aa988947d744dfc5 (diff) | |
launching a binary from the command line hangs on macOS Sonoma (#799)
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_cocoa.mm | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index ea5deb3ea..76753d4f9 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -1799,12 +1799,7 @@ void Fl_Cocoa_Screen_Driver::open_display_platform() { FLAppDelegate *delegate = (Fl_Darwin_System_Driver::calc_mac_os_version() < 100500 ? [FLAppDelegateBefore10_5 alloc] : [FLAppDelegate alloc]); [(NSApplication*)NSApp setDelegate:[delegate init]]; if (need_new_nsapp) { - BOOL condition = (fl_mac_os_version >= 101300); - if (fl_mac_os_version >= 140000) { // hack to detect if app is started by Xcode - NSDictionary *environment = [[NSProcessInfo processInfo] environment]; - condition = (environment[@"__XCODE_BUILT_PRODUCTS_DIR_PATHS"] != nil); - } - if (condition && is_bundled() ) { + if (fl_mac_os_version >= 101300 && fl_mac_os_version < 140000 && is_bundled()) { [NSApp activateIgnoringOtherApps:YES]; in_nsapp_run = true; [NSApp run]; @@ -1820,15 +1815,15 @@ void Fl_Cocoa_Screen_Driver::open_display_platform() { dequeue:NO]; } } - - // empty the event queue but keep system events for drag&drop of files at launch - NSEvent *ign_event; - do ign_event = [NSApp nextEventMatchingMask:(NSEventMaskAny & ~NSEventMaskSystemDefined) - untilDate:[NSDate dateWithTimeIntervalSinceNow:0] - inMode:NSDefaultRunLoopMode - dequeue:YES]; - while (ign_event); - + if (fl_mac_os_version < 140000) { + // empty the event queue but keep system events for drag&drop of files at launch + NSEvent *ign_event; + do ign_event = [NSApp nextEventMatchingMask:(NSEventMaskAny & ~NSEventMaskSystemDefined) + untilDate:[NSDate dateWithTimeIntervalSinceNow:0] + inMode:NSDefaultRunLoopMode + dequeue:YES]; + while (ign_event); + } if (![NSApp isActive]) foreground_and_activate(); if (![NSApp servicesMenu]) createAppleMenu(); else Fl_Sys_Menu_Bar::window_menu_style(Fl_Sys_Menu_Bar::no_window_menu); |
