Signed-off-by: Hans de Goede <hdego...@redhat.com> --- src/evdev.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/src/evdev.c b/src/evdev.c index b39b484..2821cc6 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -580,6 +580,19 @@ evdev_process_absolute(struct evdev_device *device, } static inline bool +evdev_any_button_down(struct evdev_device *device) +{ + unsigned int button; + + for (button = BTN_LEFT; button < BTN_JOYSTICK; button++) { + if (libevdev_has_event_code(device->evdev, EV_KEY, button) && + hw_is_key_down(device, button)) + return true; + } + return false; +} + +static inline bool evdev_need_touch_frame(struct evdev_device *device) { if (!(device->seat_caps & EVDEV_DEVICE_TOUCH)) @@ -773,16 +786,11 @@ evdev_left_handed_has(struct libinput_device *device) static void evdev_change_to_left_handed(struct evdev_device *device) { - unsigned int button; - if (device->buttons.want_left_handed == device->buttons.left_handed) return; - for (button = BTN_LEFT; button < BTN_JOYSTICK; button++) { - if (libevdev_has_event_code(device->evdev, EV_KEY, button) && - hw_is_key_down(device, button)) - return; - } + if (evdev_any_button_down(device)) + return; device->buttons.left_handed = device->buttons.want_left_handed; } -- 2.1.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel