Skip to content

Commit

Permalink
Fixed bug 2550 - [OS X 10.9] Enabling SDL_WINDOW_FULLSCREEN after rel…
Browse files Browse the repository at this point in the history
…ative mouse mode leaves cursor visible

 Eric Wasylishen

Steps to reproduce:

- Run testwm2 app in the SDLTest Xcode project
- Press Control+R to enable relative mouse mode. The mouse cursor should disappear.
- Press Control+Enter to enter fullscreen.
- Expected: a black screen with no cursor visible. Observed: a black screen, but the mouse cursor is visible in the middle of the screen. It doesn't move when I move the mouse.

Reproduced with latest sdl2 hg (changeset f6010ead184f) on OS X 10.9.2. Can't reproduce the problem on OS X 10.6.8 or 10.7.5.

I'm speculating that this really an Apple bug.. but anyway, the attached workaround seems to fix it for me, and I think it's fairly safe.

A more obvious idea, sticking a call SDL_SetCursor(NULL) at the end of Cocoa_SetWindowFullscreen, didn't work.
  • Loading branch information
slouken committed Jun 2, 2014
1 parent 3266513 commit 6b90d7f
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/video/cocoa/SDL_cocoamouse.m
Expand Up @@ -271,6 +271,15 @@ + (NSCursor *)invisibleCursor
if (result != kCGErrorSuccess) {
return SDL_SetError("CGAssociateMouseAndMouseCursorPosition() failed");
}

/* The hide/unhide calls are redundant most of the time, but they fix
* https://bugzilla.libsdl.org/show_bug.cgi?id=2550
*/
if (enabled) {
[NSCursor hide];
} else {
[NSCursor unhide];
}
return 0;
}

Expand Down

0 comments on commit 6b90d7f

Please sign in to comment.