diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2014-12-04 16:50:32 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-12-04 16:50:32 +1000 |
commit | 1fa07bbafb7438fde081f430da9633ce1be46f81 (patch) | |
tree | 5179992d5f42d01cef73e513a16e4dd256a2d4b8 | |
parent | 06720852fc09aaeea897ba4926924161dd54c68b (diff) | |
download | libinput-1fa07bbafb7438fde081f430da9633ce1be46f81.tar.gz |
Always check for INVALID configs first
Always check for invalid input first, then check if the input is supported by
the actual device.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | src/libinput.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/libinput.c b/src/libinput.c index 0d380fa8..60505f67 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -1462,12 +1462,12 @@ LIBINPUT_EXPORT enum libinput_config_status libinput_device_config_accel_set_speed(struct libinput_device *device, double speed) { - if (!libinput_device_config_accel_is_available(device)) - return LIBINPUT_CONFIG_STATUS_UNSUPPORTED; - if (speed < -1.0 || speed > 1.0) return LIBINPUT_CONFIG_STATUS_INVALID; + if (!libinput_device_config_accel_is_available(device)) + return LIBINPUT_CONFIG_STATUS_UNSUPPORTED; + return device->config.accel->set_speed(device, speed); } @@ -1576,9 +1576,6 @@ LIBINPUT_EXPORT enum libinput_config_status libinput_device_config_scroll_set_method(struct libinput_device *device, enum libinput_config_scroll_method method) { - if ((libinput_device_config_scroll_get_methods(device) & method) != method) - return LIBINPUT_CONFIG_STATUS_UNSUPPORTED; - /* Check method is a single valid method */ switch (method) { case LIBINPUT_CONFIG_SCROLL_NO_SCROLL: @@ -1590,6 +1587,9 @@ libinput_device_config_scroll_set_method(struct libinput_device *device, return LIBINPUT_CONFIG_STATUS_INVALID; } + if ((libinput_device_config_scroll_get_methods(device) & method) != method) + return LIBINPUT_CONFIG_STATUS_UNSUPPORTED; + if (device->config.scroll_method) return device->config.scroll_method->set_method(device, method); else /* method must be _NO_SCROLL to get here */ @@ -1618,13 +1618,13 @@ LIBINPUT_EXPORT enum libinput_config_status libinput_device_config_scroll_set_button(struct libinput_device *device, uint32_t button) { + if (button && !libinput_device_has_button(device, button)) + return LIBINPUT_CONFIG_STATUS_INVALID; + if ((libinput_device_config_scroll_get_methods(device) & LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN) == 0) return LIBINPUT_CONFIG_STATUS_UNSUPPORTED; - if (button && !libinput_device_has_button(device, button)) - return LIBINPUT_CONFIG_STATUS_INVALID; - return device->config.scroll_method->set_button(device, button); } |