From 44341d3b7806e95bbcc9ffb167b428259c2ac9e6 Mon Sep 17 00:00:00 2001 From: Wim Looman Date: Fri, 3 Feb 2012 23:53:51 +1300 Subject: [PATCH] Change SDL_SetCursor to set the cursor back to the default cursor when the window is unfocused. --- src/events/SDL_mouse.c | 6 +++++- src/video/cocoa/SDL_cocoamouse.m | 14 ++++++-------- src/video/cocoa/SDL_cocoawindow.m | 4 +--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c index 828b44773..b847a879a 100755 --- a/src/events/SDL_mouse.c +++ b/src/events/SDL_mouse.c @@ -465,7 +465,11 @@ SDL_SetCursor(SDL_Cursor * cursor) } mouse->cur_cursor = cursor; } else { - cursor = mouse->cur_cursor; + if (mouse->focus) { + cursor = mouse->cur_cursor; + } else { + cursor = mouse->def_cursor; + } } if (cursor && mouse->cursor_shown && !mouse->relative_mode) { diff --git a/src/video/cocoa/SDL_cocoamouse.m b/src/video/cocoa/SDL_cocoamouse.m index 6f9875175..67b805a95 100755 --- a/src/video/cocoa/SDL_cocoamouse.m +++ b/src/video/cocoa/SDL_cocoamouse.m @@ -92,15 +92,13 @@ { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - if (SDL_GetMouseFocus()) { - if (cursor) { - NSCursor *nscursor = (NSCursor *)cursor->driverdata; + if (cursor) { + NSCursor *nscursor = (NSCursor *)cursor->driverdata; - [nscursor set]; - [NSCursor unhide]; - } else { - [NSCursor hide]; - } + [nscursor set]; + [NSCursor unhide]; + } else { + [NSCursor hide]; } [pool release]; diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index b48de4f94..ef19ce002 100755 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/src/video/cocoa/SDL_cocoawindow.m @@ -313,9 +313,7 @@ - (void)mouseExited:(NSEvent *)theEvent CGDisplayMoveCursorToPoint(kCGDirectMainDisplay, cgpoint); } else { SDL_SetMouseFocus(NULL); - - [[NSCursor arrowCursor] set]; - [NSCursor unhide]; + SDL_SetCursor(NULL); } } }