summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2014-12-04 16:50:32 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2014-12-04 16:50:32 +1000
commit1fa07bbafb7438fde081f430da9633ce1be46f81 (patch)
tree5179992d5f42d01cef73e513a16e4dd256a2d4b8
parent06720852fc09aaeea897ba4926924161dd54c68b (diff)
downloadlibinput-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.c18
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);
}