Browse Source

Only clear the raw input queue status if we don't call GetRawInputBuffer()

GetRawInputBuffer() will do that for us when we read all the queued events
Sam Lantinga 1 year ago
parent
commit
02c63667c7
2 changed files with 2 additions and 3 deletions
  1. 2 0
      src/video/windows/SDL_windowsevents.c
  2. 0 3
      src/video/windows/SDL_windowsrawinput.c

+ 2 - 0
src/video/windows/SDL_windowsevents.c

@@ -674,6 +674,8 @@ void WIN_PollRawInput(SDL_VideoDevice *_this)
     /* Relative mouse motion is delivered to the window with keyboard focus */
     window = SDL_GetKeyboardFocus();
     if (!window) {
+        // Clear the queue status so MsgWaitForMultipleObjects() will wait again
+        (void)GetQueueStatus(QS_RAWINPUT);
         return;
     }
     data = window->driverdata;

+ 0 - 3
src/video/windows/SDL_windowsrawinput.c

@@ -81,9 +81,6 @@ static DWORD WINAPI WIN_RawInputThread(LPVOID param)
             break;
         }
 
-        /* Clear the queue status so MsgWaitForMultipleObjects() will wait again */
-        (void)GetQueueStatus(QS_RAWINPUT);
-
         WIN_PollRawInput(_this);
     }