In the current code, if only IgnoreRelativeAxes is set, the code would go on and force absolute axes to initialize even if the relative axes were successfully initialized.
Evdev gives precedence to relative axes anyway, initializing absolute axes if the relative axes failed. Thus, if we explicitely want relative axes but leave the abs axes as-is, proceed as normal. Signed-off-by: Peter Hutterer <[email protected]> --- src/evdev.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/evdev.c b/src/evdev.c index 045d780..d1b4f96 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1917,7 +1917,9 @@ EvdevInit(DeviceIntPtr device) * used and relative axes are ignored. */ - if (pEvdev->flags & (EVDEV_UNIGNORE_RELATIVE | EVDEV_UNIGNORE_ABSOLUTE)) + if ((pEvdev->flags & (EVDEV_UNIGNORE_RELATIVE|EVDEV_UNIGNORE_ABSOLUTE)) == EVDEV_UNIGNORE_RELATIVE) + EvdevInitRelValuators(device, pEvdev); + else if (pEvdev->flags & EVDEV_UNIGNORE_ABSOLUTE) EvdevInitAnyValuators(device, pEvdev); else if (pEvdev->flags & (EVDEV_TOUCHPAD | EVDEV_TOUCHSCREEN | EVDEV_TABLET)) EvdevInitTouchDevice(device, pEvdev); -- 1.9.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
