As it turns out upon detecting a tablet in evdev_configure_device(), there isn't
any call to return to escape the function once we've finished configuring the
tablet. As a result, the code continues running and ends up reconfiguring the
device as a pointer, resulting in strange behavior such as left-handed mode
being enabled by default.

Signed-off-by: Stephen Chandler Paul <[email protected]>
---
 src/evdev.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/evdev.c b/src/evdev.c
index 939d266..defd004 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -1448,6 +1448,7 @@ evdev_configure_device(struct evdev_device *device)
                        log_info(libinput,
                                 "input device '%s', %s is a tablet\n",
                                 device->devname, devnode);
+                       return device->dispatch == NULL ? -1 : 0;
                }
 
                for (i = 0; i < KEY_MAX; i++) {
-- 
2.0.5

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to