[PATCH libinput] tablet: set the tip-up pressure threshold to 1%
Peter Hutterer
peter.hutterer at who-t.net
Fri Dec 8 05:19:59 UTC 2017
Some pens keep sending small amounts of pressure even when the tip is up. This
isn't always a sign of the pens worn out, it also happens on the new Pro Pen
3D models.
The X driver uses a default threshould of ~1.3% to paper over this, let's do
the same with a 1% threshold. This threshold only applies to pens that don't
already have a pressure offset anyway.
https://bugs.freedesktop.org/show_bug.cgi?id=103086
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
src/evdev-tablet.c | 5 +++--
test/test-tablet.c | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/evdev-tablet.c b/src/evdev-tablet.c
index 4344da54..f69933dd 100644
--- a/src/evdev-tablet.c
+++ b/src/evdev-tablet.c
@@ -1057,11 +1057,11 @@ tablet_get_tool(struct tablet_dispatch *tablet,
if (pressure) {
tool->pressure_offset = pressure->minimum;
- /* 5% of the pressure range */
+ /* 5 and 1% of the pressure range */
tool->pressure_threshold.upper =
axis_range_percentage(pressure, 5);
tool->pressure_threshold.lower =
- pressure->minimum;
+ axis_range_percentage(pressure, 1);
}
tool_set_bits(tablet, tool);
@@ -1246,6 +1246,7 @@ detect_pressure_offset(struct tablet_dispatch *tablet,
LIBINPUT_VERSION);
tool->pressure_offset = offset;
tool->has_pressure_offset = true;
+ tool->pressure_threshold.lower = pressure->minimum;
}
static void
diff --git a/test/test-tablet.c b/test/test-tablet.c
index bc089389..421e82c3 100644
--- a/test/test-tablet.c
+++ b/test/test-tablet.c
@@ -3458,7 +3458,7 @@ START_TEST(tablet_pressure_range)
litest_drain_events(li);
libinput_dispatch(li);
- for (pressure = 1; pressure <= 100; pressure += 10) {
+ for (pressure = 10; pressure <= 100; pressure += 10) {
litest_axis_set_value(axes, ABS_PRESSURE, pressure);
litest_tablet_motion(dev, 70, 70, axes);
libinput_dispatch(li);
--
2.13.6
More information about the wayland-devel
mailing list