touchpad: add escape and asterisk to the DWT blacklist
authorJosé Expósito <jose.exposito89@gmail.com>
Mon, 14 Nov 2022 17:38:13 +0000 (18:38 +0100)
committerJosé Expósito <jose.exposito89@gmail.com>
Mon, 14 Nov 2022 18:11:12 +0000 (19:11 +0100)
The escape key can be used to cancel a drag and drop action in some
desktop environments. However, it triggers disable-while-typing, ending
the drag and drop action rather than cancelling it.

Add it to the tp_key_ignore_for_dwt() set to avoid it.

Since I'm here, add the asterisk key as it is the only numpad key not
ignored by tp_key_ignore_for_dwt().

Fix: https://gitlab.freedesktop.org/libinput/libinput/-/issues/820  # [1]
Suggested-by: satrmb <10471-satrmb@users.noreply.gitlab.freedesktop.org>
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
src/evdev-mt-touchpad.c
test/test-touchpad.c

index ea9c8f1..a6afbda 100644 (file)
@@ -2285,7 +2285,13 @@ tp_key_ignore_for_dwt(unsigned int keycode)
        if (tp_key_is_modifier(keycode))
                return false;
 
-       return keycode >= KEY_F1;
+       switch (keycode) {
+       case KEY_ESC:
+       case KEY_KPASTERISK:
+               return true;
+       default:
+               return keycode >= KEY_F1;
+       }
 }
 
 static void
index b55d979..c0b596a 100644 (file)
@@ -4195,6 +4195,9 @@ START_TEST(touchpad_dwt_modifier_no_dwt)
                KEY_COMPOSE,
                KEY_RIGHTMETA,
                KEY_LEFTMETA,
+               KEY_ESC,
+               KEY_KPASTERISK,
+               KEY_F1,
        };
 
        if (!has_disable_while_typing(touchpad))