From c71a1f4347013cf94254c1ea421b3a313a125b35 Mon Sep 17 00:00:00 2001 From: JoseExposito Date: Sun, 4 Apr 2021 16:59:40 +0200 Subject: [PATCH] touchpad/clickfinger: limit middle click to 3 fingers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't middle click on clickpads with click method clickfinger when more than 3 fingers are used. Signed-off-by: José Expósito --- src/evdev-mt-touchpad-buttons.c | 3 ++- test/test-touchpad-buttons.c | 39 --------------------------------- 2 files changed, 2 insertions(+), 40 deletions(-) diff --git a/src/evdev-mt-touchpad-buttons.c b/src/evdev-mt-touchpad-buttons.c index a6373a93..4591270e 100644 --- a/src/evdev-mt-touchpad-buttons.c +++ b/src/evdev-mt-touchpad-buttons.c @@ -1141,8 +1141,9 @@ out: case 0: case 1: button = BTN_LEFT; break; case 2: button = BTN_RIGHT; break; + case 3: button = BTN_MIDDLE; break; default: - button = BTN_MIDDLE; break; + button = 0; break; } diff --git a/test/test-touchpad-buttons.c b/test/test-touchpad-buttons.c index 3bb6d575..e0a8ddf2 100644 --- a/test/test-touchpad-buttons.c +++ b/test/test-touchpad-buttons.c @@ -291,7 +291,6 @@ START_TEST(touchpad_4fg_clickfinger) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - struct libinput_event *event; if (litest_slot_count(dev) < 4) return; @@ -315,18 +314,6 @@ START_TEST(touchpad_4fg_clickfinger) libinput_dispatch(li); - litest_wait_for_event(li); - event = libinput_get_event(li); - litest_is_button_event(event, - BTN_MIDDLE, - LIBINPUT_BUTTON_STATE_PRESSED); - libinput_event_destroy(event); - event = libinput_get_event(li); - litest_is_button_event(event, - BTN_MIDDLE, - LIBINPUT_BUTTON_STATE_RELEASED); - libinput_event_destroy(event); - litest_assert_empty_queue(li); } END_TEST @@ -335,7 +322,6 @@ START_TEST(touchpad_4fg_clickfinger_btntool_2slots) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - struct libinput_event *event; if (litest_slot_count(dev) >= 3 || !libevdev_has_event_code(dev->evdev, EV_KEY, BTN_TOOL_QUADTAP)) @@ -360,18 +346,6 @@ START_TEST(touchpad_4fg_clickfinger_btntool_2slots) litest_touch_up(dev, 0); litest_touch_up(dev, 1); - litest_wait_for_event(li); - event = libinput_get_event(li); - litest_is_button_event(event, - BTN_MIDDLE, - LIBINPUT_BUTTON_STATE_PRESSED); - libinput_event_destroy(event); - event = libinput_get_event(li); - litest_is_button_event(event, - BTN_MIDDLE, - LIBINPUT_BUTTON_STATE_RELEASED); - libinput_event_destroy(event); - litest_assert_empty_queue(li); } END_TEST @@ -380,7 +354,6 @@ START_TEST(touchpad_4fg_clickfinger_btntool_3slots) { struct litest_device *dev = litest_current_device(); struct libinput *li = dev->libinput; - struct libinput_event *event; if (litest_slot_count(dev) != 3 || !libevdev_has_event_code(dev->evdev, EV_KEY, BTN_TOOL_TRIPLETAP)) @@ -409,18 +382,6 @@ START_TEST(touchpad_4fg_clickfinger_btntool_3slots) libinput_dispatch(li); - litest_wait_for_event(li); - event = libinput_get_event(li); - litest_is_button_event(event, - BTN_MIDDLE, - LIBINPUT_BUTTON_STATE_PRESSED); - libinput_event_destroy(event); - event = libinput_get_event(li); - litest_is_button_event(event, - BTN_MIDDLE, - LIBINPUT_BUTTON_STATE_RELEASED); - libinput_event_destroy(event); - litest_assert_empty_queue(li); } END_TEST