From 224a28de25fda654040a9fd4e5c4d748c9e29809 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 25 Jan 2012 16:03:34 +1000 Subject: Only force REL_X/Y if no ABS_X/Y exists 5c5b2c8db851df7921cedd888222a6630a007fd8 added forced x/y axes if a device has any axes of the same mode. This was too broad a brush, some devices have a relative wheel but absolute x/y axes and would now get misdetected as purely relative device. Only force relative axes if a device no rel x/y _and_ no abs x/y. Reproducible: virtual machine with QEMU USB Tablet will stop working Signed-off-by: Peter Hutterer Reviewed-by: Chase Douglas --- src/evdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/evdev.c b/src/evdev.c index 32fe38b..d540b87 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -2146,7 +2146,8 @@ EvdevProbe(InputInfoPtr pInfo) if (EvdevBitIsSet(pEvdev->rel_bitmask, REL_X) && EvdevBitIsSet(pEvdev->rel_bitmask, REL_Y)) { xf86IDrvMsg(pInfo, X_PROBED, "Found x and y relative axes\n"); - } else + } else if (!EvdevBitIsSet(pEvdev->abs_bitmask, ABS_X) || + !EvdevBitIsSet(pEvdev->abs_bitmask, ABS_Y)) EvdevForceXY(pInfo, Relative); } else { xf86IDrvMsg(pInfo, X_INFO, "Relative axes present but ignored.\n"); -- cgit v1.2.3