debounce: disable debouncing on the Logitech K400

This is an external keyboard+touchpad but not recognised as touchpad by the
kernel so it's in mouse emulation mode. Double-taps are sent with impossibly
close timestamps and filtered out by the debouncing code. Since this isn't a
real button that can wear out anyway, let's just disable debouncing on this
device.

https://bugs.freedesktop.org/show_bug.cgi?id=105974

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2018-04-13 08:57:05 +10:00
parent 3651495798
commit 23614f7551
4 changed files with 8 additions and 1 deletions

View file

@ -568,7 +568,8 @@ fallback_init_debounce(struct fallback_dispatch *dispatch)
struct evdev_device *device = dispatch->device;
char timer_name[64];
if (device->model_flags & EVDEV_MODEL_MS_NANO_TRANSCEIVER) {
if (device->model_flags &
(EVDEV_MODEL_MS_NANO_TRANSCEIVER|EVDEV_MODEL_LOGITECH_K400)) {
dispatch->debounce.state = DEBOUNCE_STATE_DISABLED;
return;
}

View file

@ -1270,6 +1270,7 @@ evdev_read_model_flags(struct evdev_device *device)
MODEL(ALPS_TOUCHPAD),
MODEL(SYNAPTICS_SERIAL_TOUCHPAD),
MODEL(JUMPING_SEMI_MT),
MODEL(LOGITECH_K400),
MODEL(CYBORG_RAT),
MODEL(HP_STREAM11_TOUCHPAD),
MODEL(LENOVO_T450_TOUCHPAD),

View file

@ -111,6 +111,7 @@ enum evdev_device_model {
EVDEV_MODEL_ALPS_TOUCHPAD = (1 << 8),
EVDEV_MODEL_SYNAPTICS_SERIAL_TOUCHPAD = (1 << 9),
EVDEV_MODEL_JUMPING_SEMI_MT = (1 << 10),
EVDEV_MODEL_LOGITECH_K400 = (1 << 11),
EVDEV_MODEL_LENOVO_X220_TOUCHPAD_FW81 = (1 << 12),
EVDEV_MODEL_CYBORG_RAT = (1 << 14),
EVDEV_MODEL_HP_STREAM11_TOUCHPAD = (1 << 16),

View file

@ -244,6 +244,10 @@ libinput:name:*Logitech M570*:dmi:*
libinput:mouse:input:b0003v046DpC408*
LIBINPUT_MODEL_LOGITECH_MARBLE_MOUSE=1
# Logitech K400
libinput:mouse:input:b0003v046Dp4024*
LIBINPUT_MODEL_LOGITECH_K400=1
##########################################
# Microsoft
##########################################