From 8b338f0b5fc99322e731812906f4d56622ede0b1 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 13 Apr 2018 08:57:05 +1000 Subject: [PATCH] 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 (cherry picked from commit 23614f75515ddb97089e2554a304aac3d951cff3) --- src/evdev-debounce.c | 3 ++- src/evdev.c | 1 + src/evdev.h | 1 + udev/90-libinput-model-quirks.hwdb | 4 ++++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/evdev-debounce.c b/src/evdev-debounce.c index f7252dcd..c5677e51 100644 --- a/src/evdev-debounce.c +++ b/src/evdev-debounce.c @@ -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; } diff --git a/src/evdev.c b/src/evdev.c index b98dc32d..3add0dc5 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1251,6 +1251,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), diff --git a/src/evdev.h b/src/evdev.h index 060020f9..496bea7f 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -110,6 +110,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), diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb index 20975aec..de1a2bd9 100644 --- a/udev/90-libinput-model-quirks.hwdb +++ b/udev/90-libinput-model-quirks.hwdb @@ -220,6 +220,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 ##########################################