From cd163b3b8a2146ed40eb1ae023dd91c48288bbcc Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 19 May 2015 16:01:55 +1000 Subject: [PATCH] Allow disabling tapping on a device without tapping The doc says this "always succeeds", not "segfaults". Signed-off-by: Peter Hutterer --- src/libinput.c | 7 ++++--- test/touchpad.c | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libinput.c b/src/libinput.c index 5ef7edfb..cefc5ec1 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -1708,11 +1708,12 @@ libinput_device_config_tap_set_enabled(struct libinput_device *device, enable != LIBINPUT_CONFIG_TAP_DISABLED) return LIBINPUT_CONFIG_STATUS_INVALID; - if (enable && - libinput_device_config_tap_get_finger_count(device) == 0) - return LIBINPUT_CONFIG_STATUS_UNSUPPORTED; + if (libinput_device_config_tap_get_finger_count(device) == 0) + return enable ? LIBINPUT_CONFIG_STATUS_UNSUPPORTED : + LIBINPUT_CONFIG_STATUS_SUCCESS; return device->config.tap->set_enabled(device, enable); + } LIBINPUT_EXPORT enum libinput_config_tap_state diff --git a/test/touchpad.c b/test/touchpad.c index e3052d48..f7f9dd5a 100644 --- a/test/touchpad.c +++ b/test/touchpad.c @@ -3154,6 +3154,9 @@ START_TEST(touchpad_tap_is_not_available) ck_assert_int_eq(libinput_device_config_tap_set_enabled(dev->libinput_device, LIBINPUT_CONFIG_TAP_ENABLED), LIBINPUT_CONFIG_STATUS_UNSUPPORTED); + ck_assert_int_eq(libinput_device_config_tap_set_enabled(dev->libinput_device, + LIBINPUT_CONFIG_TAP_DISABLED), + LIBINPUT_CONFIG_STATUS_SUCCESS); } END_TEST