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 @@ Cocoa_ShowCursor(SDL_Cursor * cursor) { 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 @@ static __inline__ void ConvertNSRect(NSRect *r) CGDisplayMoveCursorToPoint(kCGDirectMainDisplay, cgpoint); } else { SDL_SetMouseFocus(NULL); - - [[NSCursor arrowCursor] set]; - [NSCursor unhide]; + SDL_SetCursor(NULL); } } }