Fixes for setting custom cursor in quartz target.
This fixes a logic error, and allows setting the cursor from off the main
thread, which isn't strictly a good idea, but previous versions of SDL on
Mac OS X apparently allowed it, so we'll make the effort here.
Fixes Bugzilla #1355.
Thanks to Alexei Svitkine for the patch!
--- a/src/video/quartz/SDL_QuartzWM.m Thu Dec 29 12:21:49 2011 -0500
+++ b/src/video/quartz/SDL_QuartzWM.m Fri Dec 30 03:18:26 2011 -0500
@@ -124,16 +124,14 @@
QZ_UpdateCursor(this);
}
else {
- if (qz_window ==nil || (mode_flags & SDL_FULLSCREEN)) {
- [ cursor->nscursor set ];
- }
- else {
+ if ( qz_window != nil && !(mode_flags & SDL_FULLSCREEN) ) {
[ qz_window invalidateCursorRectsForView: [ qz_window contentView ] ];
}
if ( ! cursor_should_be_visible ) {
cursor_should_be_visible = YES;
QZ_ChangeGrabState (this, QZ_SHOWCURSOR);
}
+ [ cursor->nscursor performSelectorOnMainThread:@selector(set) withObject:nil waitUntilDone:NO ];
QZ_UpdateCursor(this);
}