Browse Source

Fixed detecting the NVIDIA controller which shows up as both a mouse and a game controller

Sam Lantinga 10 years ago
parent
commit
3e4a8ce1c2
1 changed files with 13 additions and 11 deletions
  1. 13 11
      src/core/linux/SDL_udev.c

+ 13 - 11
src/core/linux/SDL_udev.c

@@ -350,17 +350,19 @@ guess_device_class(struct udev_device *dev)
             devclass |= SDL_UDEV_DEVICE_MOUSE; /* ID_INPUT_MOUSE */
         } else if (test_bit(BTN_TOUCH, bitmask_key)) {
             ; /* ID_INPUT_TOUCHSCREEN */
-        } else if (test_bit(BTN_TRIGGER, bitmask_key) ||
-                 test_bit(BTN_A, bitmask_key) ||
-                 test_bit(BTN_1, bitmask_key) ||
-                 test_bit(ABS_RX, bitmask_abs) ||
-                 test_bit(ABS_RY, bitmask_abs) ||
-                 test_bit(ABS_RZ, bitmask_abs) ||
-                 test_bit(ABS_THROTTLE, bitmask_abs) ||
-                 test_bit(ABS_RUDDER, bitmask_abs) ||
-                 test_bit(ABS_WHEEL, bitmask_abs) ||
-                 test_bit(ABS_GAS, bitmask_abs) ||
-                 test_bit(ABS_BRAKE, bitmask_abs)) {
+        }
+
+        if (test_bit(BTN_TRIGGER, bitmask_key) ||
+            test_bit(BTN_A, bitmask_key) ||
+            test_bit(BTN_1, bitmask_key) ||
+            test_bit(ABS_RX, bitmask_abs) ||
+            test_bit(ABS_RY, bitmask_abs) ||
+            test_bit(ABS_RZ, bitmask_abs) ||
+            test_bit(ABS_THROTTLE, bitmask_abs) ||
+            test_bit(ABS_RUDDER, bitmask_abs) ||
+            test_bit(ABS_WHEEL, bitmask_abs) ||
+            test_bit(ABS_GAS, bitmask_abs) ||
+            test_bit(ABS_BRAKE, bitmask_abs)) {
             devclass |= SDL_UDEV_DEVICE_JOYSTICK; /* ID_INPUT_JOYSTICK */
         }
     }