瀏覽代碼

Always poll udev on supported platforms

Fixes https://github.com/libsdl-org/SDL/issues/13995
Sam Lantinga 1 天之前
父節點
當前提交
6a9ac1cacd
共有 3 個文件被更改,包括 6 次插入5 次删除
  1. 0 4
      src/core/linux/SDL_evdev.c
  2. 5 0
      src/events/SDL_events.c
  3. 1 1
      src/joystick/linux/SDL_sysjoystick.c

+ 0 - 4
src/core/linux/SDL_evdev.c

@@ -322,10 +322,6 @@ void SDL_EVDEV_Poll(void)
         return;
     }
 
-#ifdef SDL_USE_LIBUDEV
-    SDL_UDEV_Poll();
-#endif
-
     SDL_EVDEV_kbd_update(_this->kbd);
 
     mouse = SDL_GetMouse();

+ 5 - 0
src/events/SDL_events.c

@@ -29,6 +29,7 @@
 #include "../audio/SDL_audio_c.h"
 #include "../camera/SDL_camera_c.h"
 #include "../timer/SDL_timer_c.h"
+#include "../core/linux/SDL_udev.h"
 #ifndef SDL_JOYSTICK_DISABLED
 #include "../joystick/SDL_joystick_c.h"
 #endif
@@ -1423,6 +1424,10 @@ bool SDL_RunOnMainThread(SDL_MainThreadCallback callback, void *userdata, bool w
 
 void SDL_PumpEventMaintenance(void)
 {
+#ifdef SDL_USE_LIBUDEV
+    SDL_UDEV_Poll();
+#endif
+
 #ifndef SDL_AUDIO_DISABLED
     SDL_UpdateAudio();
 #endif

+ 1 - 1
src/joystick/linux/SDL_sysjoystick.c

@@ -973,7 +973,7 @@ static void LINUX_JoystickDetect(void)
 {
 #ifdef SDL_USE_LIBUDEV
     if (enumeration_method == ENUMERATION_LIBUDEV) {
-        SDL_UDEV_Poll();
+        // Polling will happen in the main event loop
     } else
 #endif
 #ifdef HAVE_INOTIFY