From 192fdb06905f0f190e3a0e258919676934e6633c Mon Sep 17 00:00:00 2001 From: Andrey Zabolotnyi Date: Mon, 15 Jan 2018 01:32:42 +0300 Subject: Fix handling of devices with only buttons (e.g. tablet pads). When transforming 'only buttons' device into a pseudo-mouse by adding relative X and Y axes, EVDEV_RELATIVE_EVENTS flag must be set on device, otherwise it gets classified as a keyboard by X11. https://bugs.freedesktop.org/show_bug.cgi?id=104630 Signed-off-by: Peter Hutterer --- src/evdev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/evdev.c b/src/evdev.c index f627fd0..cffed7f 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -2353,8 +2353,10 @@ EvdevProbe(InputInfoPtr pInfo) pInfo->type_name = XI_TOUCHSCREEN; } else { if (!libevdev_has_event_code(pEvdev->dev, EV_REL, REL_X) || - !libevdev_has_event_code(pEvdev->dev, EV_REL, REL_Y)) + !libevdev_has_event_code(pEvdev->dev, EV_REL, REL_Y)) { + pEvdev->flags |= EVDEV_RELATIVE_EVENTS; EvdevForceXY(pInfo, Relative); + } xf86IDrvMsg(pInfo, X_INFO, "Configuring as mouse\n"); pInfo->type_name = XI_MOUSE; } -- cgit v1.2.3