summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Expósito <jose.exposito89@gmail.com>2022-11-23 08:48:55 +0100
committerPeter Hutterer <peter.hutterer@who-t.net>2022-11-23 22:39:02 +0000
commit96e57b5eff18a18481c908df32db524f43ae0162 (patch)
treef432a0eee6420cb49d68e3058e34b37441d06612
parent8a6ca3c1c5adf1dd78e945043b547ce41318a5fa (diff)
downloadlibinput-96e57b5eff18a18481c908df32db524f43ae0162.tar.gz
tablet: increase touch arbitration rectangle height
A user was experiencing issues with their hand being recognized as touch input above the stylus tip. Since touch above the stylus should be rare, increase the touch arbitration rectangle height by 50mm. Fix: https://gitlab.freedesktop.org/libinput/libinput/-/issues/809 Signed-off-by: José Expósito <jose.exposito89@gmail.com>
-rw-r--r--src/evdev-tablet.c8
-rw-r--r--test/test-tablet.c4
2 files changed, 6 insertions, 6 deletions
diff --git a/src/evdev-tablet.c b/src/evdev-tablet.c
index 01a8c1cf..6ce21d07 100644
--- a/src/evdev-tablet.c
+++ b/src/evdev-tablet.c
@@ -1501,8 +1501,8 @@ tablet_calculate_arbitration_rect(struct tablet_dispatch *tablet)
mm = evdev_device_units_to_mm(device, &tablet->axes.point);
- /* The rect we disable is 20mm left of the tip, 50mm north of the
- * tip, and 200x200mm large.
+ /* The rect we disable is 20mm left of the tip, 100mm north of the
+ * tip, and 200x250mm large.
* If the stylus is tilted left (tip further right than the eraser
* end) assume left-handed mode.
*
@@ -1523,8 +1523,8 @@ tablet_calculate_arbitration_rect(struct tablet_dispatch *tablet)
r.x = 0;
}
- r.y = mm.y - 50;
- r.h = 200;
+ r.y = mm.y - 100;
+ r.h = 250;
if (r.y < 0) {
r.h -= r.y;
r.y = 0;
diff --git a/test/test-tablet.c b/test/test-tablet.c
index 098c9e56..2a6e0731 100644
--- a/test/test-tablet.c
+++ b/test/test-tablet.c
@@ -4891,7 +4891,7 @@ START_TEST(touch_arbitration_outside_rect)
return;
x = 20;
- y = 45;
+ y = 70;
/* disable prox-out timer quirk */
litest_tablet_proximity_in(dev, x, y - 1, axes);
@@ -4912,7 +4912,7 @@ START_TEST(touch_arbitration_outside_rect)
litest_assert_touch_sequence(li);
/* above rect */
- litest_touch_sequence(finger, 0, x + 2, y - 35, x + 20, y - 10, 3);
+ litest_touch_sequence(finger, 0, x + 2, y - 65, x + 20, y - 40, 3);
libinput_dispatch(li);
litest_assert_touch_sequence(li);