From 150c261a45e61c12116e3902e4f38f04bf52cfec Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sun, 15 Oct 2017 17:42:48 +0000 Subject: [PATCH] MacOS 10.13: fix problem with window made fullscreen by clicking on green window button. With MacOS 10.13 "High Sierra", when a window is made fullscreen by clicking on the green window button, the window hides the system menubar, but it's not possible to show the menubar by moving the pointer to the very top of the window. This new way of starting apps fixes this problem. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@12504 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_cocoa.mm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 45e7ad58d..4bce46ac6 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -1490,6 +1490,7 @@ static FLWindowDelegate *flwindowdelegate_instance = nil; @public TSMDocumentID currentDoc; } +- (void)applicationDidFinishLaunching:(NSNotification *)notification; - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)sender; - (void)applicationDidBecomeActive:(NSNotification *)notify; - (void)applicationDidChangeScreenParameters:(NSNotification *)aNotification; @@ -1501,6 +1502,10 @@ static FLWindowDelegate *flwindowdelegate_instance = nil; - (void)open_cb:(void (*)(const char*))cb; @end @implementation FLAppDelegate +- (void)applicationDidFinishLaunching:(NSNotification *)notification +{ + if (fl_mac_os_version >= 101300 && [NSApp isRunning]) [NSApp stop:nil]; +} - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)sender { fl_lock_function(); @@ -1746,7 +1751,7 @@ void fl_open_display() { localPool = [[NSAutoreleasePool alloc] init]; // never released FLAppDelegate *delegate = (fl_mac_os_version < 100500 ? [FLAppDelegateBefore10_5 alloc] : [FLAppDelegate alloc]); [(NSApplication*)NSApp setDelegate:[delegate init]]; - if (need_new_nsapp) [NSApp finishLaunching]; + if (need_new_nsapp) (fl_mac_os_version >= 101300 ? [NSApp run] : [NSApp finishLaunching]); // empty the event queue but keep system events for drag&drop of files at launch NSEvent *ign_event;