From 2ca425dc287171c001c3a58544d0e014346176a4 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 6 Nov 2014 12:47:51 +0100 Subject: [PATCH] evdev: Add evdev_any_button_down helper function Signed-off-by: Hans de Goede Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- src/evdev.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/evdev.c b/src/evdev.c index 146c1b70..14da3690 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -570,6 +570,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) { @@ -763,16 +776,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; }