From a18b2f067bca19f364e2abc3105282c6a7f47fe4 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 26 Nov 2014 17:15:48 +0100 Subject: [PATCH] evdev: Prefer pointer/touch devices over keyboard devices In keyboard/mouse wireless combos, it is rather common for the mouse to claim it contains the multimedia keys, this makes libinput enable both the pointer and keyboard capabilities on this device, and Clutter thus to create a keyboard ClutterInputDevice for it. Ideally clutter devices should be able to reflect their full capabilities, or maybe account for the fact that certain events can be sent from seemingly unexpected device types. But this will bring a somewhat better behavior on such devices. https://bugzilla.gnome.org/show_bug.cgi?id=740518 --- clutter/evdev/clutter-input-device-evdev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clutter/evdev/clutter-input-device-evdev.c b/clutter/evdev/clutter-input-device-evdev.c index 4b94ae9a1..812f1440f 100644 --- a/clutter/evdev/clutter-input-device-evdev.c +++ b/clutter/evdev/clutter-input-device-evdev.c @@ -190,12 +190,12 @@ ClutterInputDeviceType _clutter_input_device_evdev_determine_type (struct libinput_device *ldev) { - if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_KEYBOARD)) - return CLUTTER_KEYBOARD_DEVICE; - else if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_POINTER)) + if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_POINTER)) return CLUTTER_POINTER_DEVICE; else if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_TOUCH)) return CLUTTER_TOUCHSCREEN_DEVICE; + else if (libinput_device_has_capability (ldev, LIBINPUT_DEVICE_CAP_KEYBOARD)) + return CLUTTER_KEYBOARD_DEVICE; else return CLUTTER_EXTENSION_DEVICE; }