Browse Source

Use mouse ID 0 for raw mouse events

We don't track state for each mouse individually, so we should just use the global mouse ID for all events.

Fixes https://github.com/libsdl-org/SDL/issues/5026
Sam Lantinga 3 years ago
parent
commit
942973dd86
1 changed files with 5 additions and 1 deletions
  1. 5 1
      src/video/windows/SDL_windowsevents.c

+ 5 - 1
src/video/windows/SDL_windowsevents.c

@@ -780,7 +780,11 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
                     (GetMouseMessageSource() == SDL_MOUSE_EVENT_SOURCE_TOUCH || (GetMessageExtraInfo() & 0x82) == 0x82)) {
                     break;
                 }
-                mouseID = (SDL_MouseID)(uintptr_t)inp.header.hDevice;
+                /* We do all of our mouse state checking against mouse ID 0
+                 * We would only use the actual hDevice if we were tracking
+                 * all mouse motion independently, and never using mouse ID 0.
+                 */
+                mouseID = 0; /* (SDL_MouseID)(uintptr_t)inp.header.hDevice; */
                 rawmouse = &inp.data.mouse;
 
                 if ((rawmouse->usFlags & 0x01) == MOUSE_MOVE_RELATIVE) {