Forráskód Böngészése

Don't send game controller touchpad or sensor events unless the application has focus

Fixes https://github.com/libsdl-org/SDL/issues/4891
Sam Lantinga 3 éve
szülő
commit
d31f90d9e1
1 módosított fájl, 12 hozzáadás és 0 törlés
  1. 12 0
      src/joystick/SDL_joystick.c

+ 12 - 0
src/joystick/SDL_joystick.c

@@ -2721,6 +2721,13 @@ int SDL_PrivateJoystickTouchpad(SDL_Joystick *joystick, int touchpad, int finger
     }
 #endif
 
+    /* We ignore events if we don't have keyboard focus, except for touch release */
+    if (SDL_PrivateJoystickShouldIgnoreEvent()) {
+        if (event_type != SDL_CONTROLLERTOUCHPADUP) {
+            return 0;
+        }
+    }
+
     /* Update internal joystick state */
     finger_info->state = state;
     finger_info->x = x;
@@ -2750,6 +2757,11 @@ int SDL_PrivateJoystickSensor(SDL_Joystick *joystick, SDL_SensorType type, const
     int i;
     int posted = 0;
 
+    /* We ignore events if we don't have keyboard focus */
+    if (SDL_PrivateJoystickShouldIgnoreEvent()) {
+        return 0;
+    }
+
     for (i = 0; i < joystick->nsensors; ++i) {
         SDL_JoystickSensorInfo *sensor = &joystick->sensors[i];