Explorar o código

Fixed large relative mouse motion when iconifying the SDL window.
Windows will move the window to -32000,-32000 when it is iconified, so we don't want to send mouse motion for iconic windows.

Sam Lantinga %!s(int64=12) %!d(string=hai) anos
pai
achega
fa4e4a643a
Modificáronse 1 ficheiros con 6 adicións e 4 borrados
  1. 6 4
      src/video/windows/SDL_windowsevents.c

+ 6 - 4
src/video/windows/SDL_windowsevents.c

@@ -496,10 +496,12 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 #ifdef WM_MOUSELEAVE
     case WM_MOUSELEAVE:
         if (SDL_GetMouseFocus() == data->window && !SDL_GetMouse()->relative_mode) {
-            POINT cursorPos;
-            GetCursorPos(&cursorPos);
-            ScreenToClient(hwnd, &cursorPos);
-            SDL_SendMouseMotion(data->window, 0, 0, cursorPos.x, cursorPos.y);
+            if (!IsIconic(hwnd)) {
+                POINT cursorPos;
+                GetCursorPos(&cursorPos);
+                ScreenToClient(hwnd, &cursorPos);
+                SDL_SendMouseMotion(data->window, 0, 0, cursorPos.x, cursorPos.y);
+            }
             SDL_SetMouseFocus(NULL);
         }
         returnCode = 0;