Fix T38452: on OS X 10.9, now always use Lion style fullscreen.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Mon, 3 Feb 2014 15:45:51 +0000 (16:45 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Mon, 3 Feb 2014 15:48:31 +0000 (16:48 +0100)
On earlier versions there is no proper multi-monitor support, so we leave the
choice still. But for 10.9 this just interacts better with other elements like
spaces and the dock.

intern/ghost/intern/GHOST_WindowCocoa.mm

index de2ae79d0b681f8bd83a4734c8e2c95b53011154..93036da4dae1597c472bb0b0d85e6eff99bad0c1 100644 (file)
@@ -1038,6 +1038,16 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
                        NSUInteger masks = [m_window styleMask];
 
                        if (!m_fullScreen && !(masks & NSFullScreenWindowMask)) {
+                               /* Starting with 10.9, we always use Lion fullscreen, since it
+                                * now has proper multi-monitor support for fullscreen */
+                               struct { SInt32 major, minor; } systemversion;
+                               Gestalt(gestaltSystemVersionMajor, &systemversion.major);
+                               Gestalt(gestaltSystemVersionMinor, &systemversion.minor);
+
+                               if (systemversion.major > 10 || (systemversion.major == 10 && systemversion.minor >= 9)) {
+                                       [m_window toggleFullScreen:nil];
+                                       break;
+                               }
 #else
                        if (!m_fullScreen) {
 #endif
@@ -1100,7 +1110,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state)
                                m_systemCocoa->handleWindowEvent(GHOST_kEventWindowSize, this);
                                
                                [pool drain];
-                               }
+                       }
                        break;
                }
                case GHOST_kWindowStateNormal: