From: Peter Hutterer Date: Thu, 29 May 2014 05:43:38 +0000 (+1000) Subject: evdev: INPUT_PROP_DIRECT devices can't be touchpads X-Git-Tag: 0.3.0~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=90b8de4ddd1edea1616e278e0c3c1570eb12061d;p=platform%2Fupstream%2Flibinput.git evdev: INPUT_PROP_DIRECT devices can't be touchpads Devices that are direct input devices are marked by the kernel with the INPUT_PROP_DIRECT property. Touchpads are always indirect input devices, so let's do the easiest check first before we try device-specific capabilities. Signed-off-by: Peter Hutterer --- diff --git a/src/evdev.c b/src/evdev.c index d23e349a..cc54ab37 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -672,7 +672,8 @@ evdev_configure_device(struct evdev_device *device) has_rel = 1; if (libevdev_has_event_type(evdev, EV_KEY)) { - if (libevdev_has_event_code(evdev, EV_KEY, BTN_TOOL_FINGER) && + if (!libevdev_has_property(evdev, INPUT_PROP_DIRECT) && + libevdev_has_event_code(evdev, EV_KEY, BTN_TOOL_FINGER) && !libevdev_has_event_code(evdev, EV_KEY, BTN_TOOL_PEN) && (has_abs || has_mt)) { device->dispatch = evdev_mt_touchpad_create(device);