Parcourir la source

evdev INPUT_PROP_SEMI_MT devices should be early-detected as touchpads

Some psmouse touchpads were being misdetected as joysticks due to only having
INPUT_PROP_SEMI_MT and INPUT_PROP_POINTER as well as having BTN_1
Vicki Pfau il y a 1 an
Parent
commit
19445339b8

+ 2 - 1
src/core/linux/SDL_evdev_capabilities.c

@@ -70,7 +70,8 @@ SDL_EVDEV_GuessDeviceClass(const unsigned long bitmask_props[NBITS(INPUT_PROP_MA
 
     /* We treat buttonpads as equivalent to touchpads */
     if (test_bit(INPUT_PROP_TOPBUTTONPAD, bitmask_props) ||
-        test_bit(INPUT_PROP_BUTTONPAD, bitmask_props)) {
+        test_bit(INPUT_PROP_BUTTONPAD, bitmask_props) ||
+        test_bit(INPUT_PROP_SEMI_MT, bitmask_props)) {
         return SDL_UDEV_DEVICE_TOUCHPAD;
     }
 

+ 3 - 0
src/core/linux/SDL_evdev_capabilities.h

@@ -28,6 +28,9 @@
 
 #include <linux/input.h>
 
+#ifndef INPUT_PROP_SEMI_MT
+#define INPUT_PROP_SEMI_MT          0x03
+#endif
 #ifndef INPUT_PROP_TOPBUTTONPAD
 #define INPUT_PROP_TOPBUTTONPAD     0x04
 #endif