(svn r10410) -Fix [FS458]: [OSX] if the resolution is changed to something that's too high for the monitor, then it's reduced to fit the monitor size (PinguTux)
authorbjarni
Mon, 02 Jul 2007 16:37:12 +0000
changeset 7136 eb853b098323
parent 7135 3c1bcca0d6bb
child 7137 8a3acc7a2d52
(svn r10410) -Fix [FS458]: [OSX] if the resolution is changed to something that's too high for the monitor, then it's reduced to fit the monitor size (PinguTux)
This solves a possible crash
This also solves a graphical glitch where the titlebar can be drawn on top of the game area
Those issues only aplied to window mode
src/video/cocoa_v.mm
--- a/src/video/cocoa_v.mm	Sun Jul 01 19:24:54 2007 +0000
+++ b/src/video/cocoa_v.mm	Mon Jul 02 16:37:12 2007 +0000
@@ -1184,10 +1184,17 @@
 		/* We already have a window, just change its size */
 		if (!isCustom) {
 			[ _cocoa_video_data.window setContentSize:contentRect.size ];
+			// Ensure frame height - title bar height >= view height
+			contentRect.size.height = clamp(height, 0, [ _cocoa_video_data.window frame ].size.height - 22 /* 22 is the height of title bar of window*/);
+			height = contentRect.size.height;
 			[ _cocoa_video_data.qdview setFrameSize:contentRect.size ];
 		}
 	}
 
+	// Update again
+	_cocoa_video_data.width = width;
+	_cocoa_video_data.height = height;
+
 	[ _cocoa_video_data.window center ];
 
 	/* Only recreate the view if it doesn't already exist */