evdev: Clear touch capability if we see a mouse-type button
authorKristian Høgsberg <krh@bitplanet.net>
Mon, 14 Oct 2013 22:46:13 +0000 (15:46 -0700)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 14 Oct 2013 22:46:13 +0000 (15:46 -0700)
If an input device has BTN_LEFT (typically) it's not a touch screen but
a touch pad.

src/evdev.c

index 0bfe94d..edea396 100644 (file)
@@ -524,16 +524,16 @@ evdev_handle_device(struct evdev_device *device)
                                break;
                        }
                }
+               if (TEST_BIT(key_bits, BTN_TOUCH)) {
+                       device->caps |= EVDEV_TOUCH;
+               }
                for (i = BTN_MISC; i < BTN_JOYSTICK; i++) {
                        if (TEST_BIT(key_bits, i)) {
                                device->caps |= EVDEV_BUTTON;
+                               device->caps &= ~EVDEV_TOUCH;
                                break;
                        }
                }
-               if (TEST_BIT(key_bits, BTN_TOUCH)) {
-                       device->caps |= EVDEV_TOUCH;
-               }
-
        }
        if (TEST_BIT(ev_bits, EV_LED)) {
                device->caps |= EVDEV_KEYBOARD;