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