diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c index 7d8735ae..d4eada9a 100644 --- a/src/evdev-mt-touchpad.c +++ b/src/evdev-mt-touchpad.c @@ -35,6 +35,7 @@ #include "util-input-event.h" #include "evdev-mt-touchpad.h" +#include "libinput-feature.h" #include "quirks.h" #define DEFAULT_TRACKPOINT_ACTIVITY_TIMEOUT ms2us(300) @@ -2754,6 +2755,21 @@ tp_interface_left_handed_toggled(struct evdev_dispatch *dispatch, tp_change_rotation(device, DONT_NOTIFY); } +static void +tp_interface_disable_feature(struct evdev_dispatch *dispatch, + enum libinput_feature feature) +{ + struct tp_dispatch *tp = tp_dispatch(dispatch); + + switch (feature) { + case LIBINPUT_FEATURE_TOUCHPAD_JUMP_DETECTION: + tp->jump.detection_disabled = true; + break; + default: + return; + } +} + static struct evdev_dispatch_interface tp_interface = { .process = tp_interface_process, .suspend = tp_interface_suspend, @@ -2768,6 +2784,7 @@ static struct evdev_dispatch_interface tp_interface = { .touch_arbitration_update_rect = NULL, .get_switch_state = NULL, .left_handed_toggle = tp_interface_left_handed_toggled, + .disable_feature = tp_interface_disable_feature, }; static void diff --git a/src/libinput-feature.h b/src/libinput-feature.h index 9e741fa5..ee355ced 100644 --- a/src/libinput-feature.h +++ b/src/libinput-feature.h @@ -26,6 +26,7 @@ enum libinput_feature { LIBINPUT_FEATURE_BUTTON_DEBOUNCING = 1, LIBINPUT_FEATURE_WHEEL_DEBOUNCING, + LIBINPUT_FEATURE_TOUCHPAD_JUMP_DETECTION, _LIBINPUT_N_FEATURES };