From 9abc55e484dc853ec17df16b768ebe2d628815b0 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 27 Sep 2018 15:07:53 +1000 Subject: [PATCH] test: make litest robust for ABS_MT_POSITION_X-only devices The Dell Canvas Totem only has the MT axes but not the single touch ones. Make sure we copy the axis extents correctly. Signed-off-by: Peter Hutterer --- test/litest.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/test/litest.c b/test/litest.c index 94702d4e..7c988f49 100644 --- a/test/litest.c +++ b/test/litest.c @@ -1466,10 +1466,23 @@ litest_add_device_with_overrides(struct libinput *libinput, libinput_device_ref(d->libinput_device); if (d->interface) { - d->interface->min[ABS_X] = libevdev_get_abs_minimum(d->evdev, ABS_X); - d->interface->max[ABS_X] = libevdev_get_abs_maximum(d->evdev, ABS_X); - d->interface->min[ABS_Y] = libevdev_get_abs_minimum(d->evdev, ABS_Y); - d->interface->max[ABS_Y] = libevdev_get_abs_maximum(d->evdev, ABS_Y); + unsigned int code; + + code = ABS_X; + if (!libevdev_has_event_code(d->evdev, EV_ABS, code)) + code = ABS_MT_POSITION_X; + if (libevdev_has_event_code(d->evdev, EV_ABS, code)) { + d->interface->min[ABS_X] = libevdev_get_abs_minimum(d->evdev, code); + d->interface->max[ABS_X] = libevdev_get_abs_maximum(d->evdev, code); + } + + code = ABS_Y; + if (!libevdev_has_event_code(d->evdev, EV_ABS, code)) + code = ABS_MT_POSITION_Y; + if (libevdev_has_event_code(d->evdev, EV_ABS, code)) { + d->interface->min[ABS_Y] = libevdev_get_abs_minimum(d->evdev, code); + d->interface->max[ABS_Y] = libevdev_get_abs_maximum(d->evdev, code); + } } return d; }