Cocoa: send a MOUSEMOTION event when warping cursor from outside the window. Fixes Bugzilla #2984.
diff --git a/src/video/cocoa/SDL_cocoamouse.m b/src/video/cocoa/SDL_cocoamouse.m
index 4f15373..9c37c47 100644
--- a/src/video/cocoa/SDL_cocoamouse.m
+++ b/src/video/cocoa/SDL_cocoamouse.m
@@ -230,6 +230,10 @@ Cocoa_WarpMouseGlobal(int x, int y)
static void
Cocoa_WarpMouse(SDL_Window * window, int x, int y)
{
+ /* pretend we have the mouse focus, even if we don't, so
+ Cocoa_WarpMouseGlobal() will properly fake a mouse motion event. */
+ SDL_Mouse *mouse = SDL_GetMouse();
+ mouse->focus = window;
Cocoa_WarpMouseGlobal(x + window->x, y + window->y);
}