Commit b420ad0e019f8935488b20b62adb5f598b23447a

Sam Lantinga 2014-02-24T23:09:35

Don't warp the mouse while we're doing a modal interaction

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/src/video/windows/SDL_windowsmouse.c b/src/video/windows/SDL_windowsmouse.c
index 1c27095..183e71c 100644
--- a/src/video/windows/SDL_windowsmouse.c
+++ b/src/video/windows/SDL_windowsmouse.c
@@ -183,9 +183,15 @@ WIN_ShowCursor(SDL_Cursor * cursor)
 static void
 WIN_WarpMouse(SDL_Window * window, int x, int y)
 {
-    HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
+    SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
+    HWND hwnd = data->hwnd;
     POINT pt;
 
+    /* Don't warp the mouse while we're doing a modal interaction */
+    if (data->in_title_click || data->in_modal_loop) {
+        return;
+    }
+
     pt.x = x;
     pt.y = y;
     ClientToScreen(hwnd, &pt);