Fixed bug #899 SDL-1.2
authorSam Lantinga <slouken@libsdl.org>
Fri, 11 Dec 2009 15:11:49 +0000
branchSDL-1.2
changeset 4389 c6c3a6e7db46
parent 4388 1524d3237820
child 4390 725e506f6243
Fixed bug #899

Jeremiah Morris 2009-12-09 16:23:50 PST

Re-enable mouseLocation workaround on 10.4, 10.5

OS X systems before 10.6 have a bug with [NSEvent mouseLocation] if the screen
resolution changes. SDL_QuartzVideo.m contains a workaround for this bug, but
it was placed inside an #ifdef in revision 4762. The comment reads, "I'm
gambling they fixed this by 10.4."

After seeing this bug on several Tiger and Leopard systems (both PPC and
Intel), I can confirm that it's not fixed until 10.6. The workaround doesn't
compile for x86_64/10.6, so I can understand why it was segregated, but it
needs to remain in place for the i386 and ppc versions. The workaround causes
no problems under 10.6, even though it's not necessary there.

Patch is attached with one method of keeping the workaround active on the
systems that need it.
src/video/quartz/SDL_QuartzVideo.m
--- a/src/video/quartz/SDL_QuartzVideo.m	Fri Dec 11 08:00:57 2009 +0000
+++ b/src/video/quartz/SDL_QuartzVideo.m	Fri Dec 11 15:11:49 2009 +0000
@@ -24,7 +24,7 @@
 #include "SDL_QuartzVideo.h"
 #include "SDL_QuartzWindow.h"
 
-#ifdef __powerpc__  /* I'm gambling they fixed this by 10.4. --ryan. */
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060   /* Fixed in Snow Leopard */
 /*
     Add methods to get at private members of NSScreen. 
     Since there is a bug in Apple's screen switching code