summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-10-18 07:21:20 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-10-18 07:21:20 +0200
commitc27009e52c9a736a73be63a827a45a5c5c0b8bbf (patch)
tree3da240c6abd8bf02c2477767ca3f100b9f0f0dd1 /src
parent9f141aefc60a1eb7f0a55700aa988947d744dfc5 (diff)
launching a binary from the command line hangs on macOS Sonoma (#799)
Diffstat (limited to 'src')
-rw-r--r--src/Fl_cocoa.mm25
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);