summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseExposito <jose.exposito89@gmail.com>2021-04-04 16:59:40 +0200
committerPeter Hutterer <peter.hutterer@who-t.net>2021-04-06 05:10:32 +0000
commitc71a1f4347013cf94254c1ea421b3a313a125b35 (patch)
tree37ba80fba9a326a54bba76559b20004bd532933e
parent74f6821d7ab9697f3b81aa110ca46cf936fb2b10 (diff)
downloadlibinput-c71a1f4347013cf94254c1ea421b3a313a125b35.tar.gz
touchpad/clickfinger: limit middle click to 3 fingers
Don't middle click on clickpads with click method clickfinger when more than 3 fingers are used. Signed-off-by: José Expósito <jose.exposito89@gmail.com>
-rw-r--r--src/evdev-mt-touchpad-buttons.c3
-rw-r--r--test/test-touchpad-buttons.c39
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