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!

--HG--
branch : SDL-1.2
This commit is contained in:
Ryan C. Gordon
2011-12-30 03:18:26 -05:00
parent 9ce46ed77a
commit b6dac9dacf

View File

@@ -124,16 +124,14 @@ int QZ_ShowWMCursor (_THIS, WMcursor *cursor) {
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);
}