Mac: Make mouse movement smooth at edge of window when grabbed.
There's a limit of one update every 250ms when warping the mouse, and we
can work around that by disassociating the cursor & the mouse before
issuing our warp, then re-associating them.
--- a/src/video/cocoa/SDL_cocoawindow.m Tue Apr 23 18:47:32 2013 -0700
+++ b/src/video/cocoa/SDL_cocoawindow.m Tue Apr 23 18:47:38 2013 -0700
@@ -392,7 +392,14 @@
cgpoint.x = window->x + x;
cgpoint.y = window->y + y;
+
+ /* We have to disassociate the curosr & the mouse before issuing
+ * this cursor warp, otherwise it gets limited to one update per
+ * 250ms, and looks very choppy.
+ */
+ CGAssociateMouseAndMouseCursorPosition(NO);
CGDisplayMoveCursorToPoint(kCGDirectMainDisplay, cgpoint);
+ CGAssociateMouseAndMouseCursorPosition(YES);
}
}
SDL_SendMouseMotion(window, 0, 0, x, y);