Mercurial > sdl-ios-xcode
diff src/video/quartz/SDL_QuartzEvents.m @ 4072:6930cd5ab933 SDL-1.2
Final fix for bug #373
------- Comment #13 From Christian Walther 2007-07-15 10:04:56 [reply] -------
Created an attachment (id=229) [details]
patch to reinstate the SDL cursor after an NSApplicationActivatedEvent
Oops, you're right. My testcursor.c has diverged so far from the original that
I missed that. In fact, now that I think about it, that issue isn't even
addressed by the cursor rectangle patch - it is only concerned with windowed
mode (and fixes the problem there as a side effect). The problem in fullscreen
is still the same as before. How about the attachment for a fix? (I can confirm
that [NSCursor set] doesn't seem to have any effect when called from
QZ_DoActivate().)
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 15 Jul 2007 17:22:39 +0000 |
parents | b8f2db95145e |
children | 7ea10b80eda3 |
line wrap: on
line diff
--- a/src/video/quartz/SDL_QuartzEvents.m Sun Jul 15 16:33:45 2007 +0000 +++ b/src/video/quartz/SDL_QuartzEvents.m Sun Jul 15 17:22:39 2007 +0000 @@ -945,7 +945,16 @@ break; case NSFlagsChanged: break; - /* case NSAppKitDefined: break; */ + case NSAppKitDefined: + [ NSApp sendEvent:event ]; + if ([ event subtype ] == NSApplicationActivatedEventType && (mode_flags & SDL_FULLSCREEN)) { + /* the default handling of this event seems to reset any cursor set by [NSCursor set] (used by SDL_SetCursor() in fullscreen mode) to the default system arrow cursor */ + SDL_Cursor *sdlc = SDL_GetCursor(); + if (sdlc != NULL && sdlc->wm_cursor != NULL) { + [ sdlc->wm_cursor->nscursor set ]; + } + } + break; /* case NSApplicationDefined: break; */ /* case NSPeriodic: break; */ /* case NSCursorUpdate: break; */