Only warp the mouse to set focus if we're definitely going into relative mode
diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c
index 7c09272..d63f00c 100644
--- a/src/events/SDL_mouse.c
+++ b/src/events/SDL_mouse.c
@@ -785,14 +785,6 @@ SDL_SetRelativeMouseMode(SDL_bool enabled)
return 0;
}
- if (enabled && focusWindow) {
- /* Center it in the focused window to prevent clicks from going through
- * to background windows.
- */
- SDL_SetMouseFocus(focusWindow);
- SDL_WarpMouseInWindow(focusWindow, focusWindow->w/2, focusWindow->h/2);
- }
-
/* Set the relative mode */
if (!enabled && mouse->relative_mode_warp) {
mouse->relative_mode_warp = SDL_FALSE;
@@ -811,6 +803,14 @@ SDL_SetRelativeMouseMode(SDL_bool enabled)
mouse->scale_accum_x = 0.0f;
mouse->scale_accum_y = 0.0f;
+ if (enabled && focusWindow) {
+ /* Center it in the focused window to prevent clicks from going through
+ * to background windows.
+ */
+ SDL_SetMouseFocus(focusWindow);
+ SDL_WarpMouseInWindow(focusWindow, focusWindow->w/2, focusWindow->h/2);
+ }
+
if (mouse->focus) {
SDL_UpdateWindowGrab(mouse->focus);