diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 6ba142253c51b719ed1f23b1e41e61aa38e95e98..face4e91bfc67b03b3d331dc9f4ae70a2b42feaa 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -186,6 +186,9 @@ const NSUInteger NSWindowStyleMaskBorderless = NSBorderlessWindowMask; const NSUInteger NSWindowStyleMaskMiniaturizable = NSMiniaturizableWindowMask; const NSUInteger NSWindowStyleMaskClosable = NSClosableWindowMask; const NSUInteger NSWindowStyleMaskTitled = NSTitledWindowMask; +# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 +const NSUInteger NSWindowStyleMaskFullScreen = NSFullScreenWindowMask; +# endif const NSUInteger NSEventMaskAny = NSAnyEventMask; const NSUInteger NSEventMaskSystemDefined = NSSystemDefinedMask; @@ -3274,8 +3277,9 @@ void Fl_Cocoa_Window_Driver::makeWindow() else [cw orderFront:nil]; if (w->fullscreen_active() && fl_mac_os_version >= 100700) { if (fullscreen_screen_top() >= 0) { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - cw.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12 + if (fl_mac_os_version >= 101200) + cw.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone; #endif *no_fullscreen_x() = pWindow->x(); *no_fullscreen_y() = pWindow->y(); @@ -3336,10 +3340,15 @@ void Fl_Cocoa_Window_Driver::fullscreen_on() { #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 if (fl_mac_os_version >= 100700 && (nswin.styleMask & NSWindowStyleMaskFullScreen)) { // from single-screen fullscreen to "All Screens" fullscreen, with border - bool allscreens_on = (nswin.collectionBehavior & NSWindowCollectionBehaviorFullScreenNone); - if (allscreens_on) nswin.collectionBehavior &= ~NSWindowCollectionBehaviorFullScreenNone; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12 + if (fl_mac_os_version >= 101200) { + bool allscreens_on = (nswin.collectionBehavior & NSWindowCollectionBehaviorFullScreenNone); + if (allscreens_on) nswin.collectionBehavior &= ~NSWindowCollectionBehaviorFullScreenNone; + [nswin toggleFullScreen:nil]; + if (allscreens_on) nswin.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone; + } else +#endif [nswin toggleFullScreen:nil]; - if (allscreens_on) nswin.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone; if (*no_fullscreen_w() == 0) { *no_fullscreen_x() = x(); *no_fullscreen_y() = y(); @@ -3477,8 +3486,8 @@ void Fl_Cocoa_Window_Driver::fullscreen_off(int X, int Y, int W, int H) { void Fl_Cocoa_Window_Driver::fullscreen_screens(bool on_off) { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (fl_mac_os_version >= 100700) { +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12 + if (fl_mac_os_version >= 101200) { FLWindow *xid = fl_mac_xid(pWindow); if (on_off) xid.collectionBehavior |= NSWindowCollectionBehaviorFullScreenNone; else xid.collectionBehavior &= ~NSWindowCollectionBehaviorFullScreenNone;