changeset 20682:47e080672367 draft

-Fix [FS#4744]: [OSX] The new 10.7 fullscreen code can now also be compiled with older SDK versions.
author Michael Lutz <michi@icosahedron.de>
date Sun, 28 Jul 2013 22:04:02 +0200
parents eda0607222af
children 877105840549
files src/video/cocoa/wnd_quartz.mm
diffstat 1 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/video/cocoa/wnd_quartz.mm
+++ b/src/video/cocoa/wnd_quartz.mm
@@ -240,12 +240,12 @@
  */
 bool WindowQuartzSubdriver::ToggleFullscreen()
 {
-#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
-	[this->window toggleFullScreen:this->window];
-	return true;
-#else
+	if ([ this->window respondsToSelector:@selector(toggleFullScreen:) ]) {
+		[ this->window performSelector:@selector(toggleFullScreen:) withObject:this->window ];
+		return true;
+	}
+
 	return false;
-#endif
 }
 
 bool WindowQuartzSubdriver::SetVideoMode(int width, int height, int bpp)
@@ -280,15 +280,17 @@
 			return false;
 		}
 
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
 		/* Add built in full-screen support when available (OS X 10.7 and higher)
 		 * This code actually compiles for 10.5 and later, but only makes sense in conjunction
 		 * with the quartz fullscreen support as found only in 10.7 and later
 		 */
-#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7)
 		if ([this->window respondsToSelector:@selector(toggleFullScreen:)]) {
-			/* Constants needed to build on pre-10.7 systems. Source: NSWindow documentation. */
+#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
+			/* Constants needed to build on pre-10.7 SDKs. Source: NSWindow documentation. */
 			const int NSWindowCollectionBehaviorFullScreenPrimary = 1 << 7;
 			const int NSWindowFullScreenButton = 7;
+#endif
 
 			NSWindowCollectionBehavior behavior = [ this->window collectionBehavior ];
 			behavior |= NSWindowCollectionBehaviorFullScreenPrimary;