SDL: Fixed HIDAPI hotplug detection when initializing gamepads off the main thread (b5cad)

From b5cad69b9cf43b2310ce44dd4a5015cc3d20480a Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 11 Feb 2026 09:02:46 -0800
Subject: [PATCH] Fixed HIDAPI hotplug detection when initializing gamepads off
 the main thread

(cherry picked from commit d3f9899df5acf7cc480625f3f684ca8ee33b8c35)
---
 src/hidapi/SDL_hidapi.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/hidapi/SDL_hidapi.c b/src/hidapi/SDL_hidapi.c
index 5331939952c84..f3de6b344b83e 100644
--- a/src/hidapi/SDL_hidapi.c
+++ b/src/hidapi/SDL_hidapi.c
@@ -388,18 +388,20 @@ static void HIDAPI_UpdateDiscovery(void)
     }
 
 #if defined(SDL_PLATFORM_WIN32) || defined(SDL_PLATFORM_WINGDK)
-#if 0 // just let the usual SDL_PumpEvents loop dispatch these, fixing bug 4286. --ryan.
-    // We'll only get messages on the same thread that created the window
-    if (SDL_GetCurrentThreadID() == SDL_HIDAPI_discovery.m_nThreadID) {
-        MSG msg;
-        while (PeekMessage(&msg, SDL_HIDAPI_discovery.m_hwndMsg, 0, 0, PM_NOREMOVE)) {
-            if (GetMessageA(&msg, SDL_HIDAPI_discovery.m_hwndMsg, 0, 0) != 0) {
-                TranslateMessage(&msg);
-                DispatchMessage(&msg);
+    if (SDL_IsMainThread()) {
+        // just let the usual SDL_PumpEvents loop dispatch these, fixing bug 2998. --ryan.
+    } else {
+        // We'll only get messages on the same thread that created the window
+        if (SDL_GetCurrentThreadID() == SDL_HIDAPI_discovery.m_nThreadID) {
+            MSG msg;
+            while (PeekMessage(&msg, SDL_HIDAPI_discovery.m_hwndMsg, 0, 0, PM_NOREMOVE)) {
+                if (GetMessageA(&msg, SDL_HIDAPI_discovery.m_hwndMsg, 0, 0) != 0) {
+                    TranslateMessage(&msg);
+                    DispatchMessage(&msg);
+                }
             }
         }
     }
-#endif
 #endif // defined(SDL_PLATFORM_WIN32) || defined(SDL_PLATFORM_WINGDK)
 
 #ifdef SDL_PLATFORM_MACOS