Always check for invalid input first, then check if the input is supported by the actual device.
Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- src/libinput.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/libinput.c b/src/libinput.c index 0d380fa..60505f6 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 ((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; + if ((libinput_device_config_scroll_get_methods(device) & + LIBINPUT_CONFIG_SCROLL_ON_BUTTON_DOWN) == 0) + return LIBINPUT_CONFIG_STATUS_UNSUPPORTED; + return device->config.scroll_method->set_button(device, button); } -- 2.1.0 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel