evdev: Reject absolute motion if we're not a pointer or a touch device
authorKristian Høgsberg <krh@bitplanet.net>
Mon, 16 Dec 2013 23:51:22 +0000 (15:51 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Mon, 16 Dec 2013 23:51:22 +0000 (15:51 -0800)
Some joysticks have certain buttons that acts keyboard keys.  As such,
we'll reconize them as keyboards but not pointers.  In that case, don't
send pointer motion events when we get absolute joystick events.

src/evdev.c

index f24544a..5f5729b 100644 (file)
@@ -139,7 +139,7 @@ evdev_flush_pending_event(struct evdev_device *device, uint32_t time)
 
                if (device->seat_caps & EVDEV_SEAT_TOUCH)
                        notify_touch(master, time, 0, x, y, WL_TOUCH_MOTION);
-               else
+               else if (device->seat_caps & EVDEV_SEAT_POINTER)
                        notify_motion_absolute(master, time, x, y);
                goto handled;
        case EVDEV_ABSOLUTE_TOUCH_UP: