mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-05 18:08:09 +02:00
tablet: set the tip-up pressure threshold to 1%
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@who-t.net>
This commit is contained in:
parent
1c8636923b
commit
61bdc05fb0
2 changed files with 4 additions and 3 deletions
|
|
@ -1057,11 +1057,11 @@ tablet_get_tool(struct tablet_dispatch *tablet,
|
||||||
if (pressure) {
|
if (pressure) {
|
||||||
tool->pressure_offset = pressure->minimum;
|
tool->pressure_offset = pressure->minimum;
|
||||||
|
|
||||||
/* 5% of the pressure range */
|
/* 5 and 1% of the pressure range */
|
||||||
tool->pressure_threshold.upper =
|
tool->pressure_threshold.upper =
|
||||||
axis_range_percentage(pressure, 5);
|
axis_range_percentage(pressure, 5);
|
||||||
tool->pressure_threshold.lower =
|
tool->pressure_threshold.lower =
|
||||||
pressure->minimum;
|
axis_range_percentage(pressure, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
tool_set_bits(tablet, tool);
|
tool_set_bits(tablet, tool);
|
||||||
|
|
@ -1246,6 +1246,7 @@ detect_pressure_offset(struct tablet_dispatch *tablet,
|
||||||
LIBINPUT_VERSION);
|
LIBINPUT_VERSION);
|
||||||
tool->pressure_offset = offset;
|
tool->pressure_offset = offset;
|
||||||
tool->has_pressure_offset = true;
|
tool->has_pressure_offset = true;
|
||||||
|
tool->pressure_threshold.lower = pressure->minimum;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
||||||
|
|
@ -3458,7 +3458,7 @@ START_TEST(tablet_pressure_range)
|
||||||
litest_drain_events(li);
|
litest_drain_events(li);
|
||||||
libinput_dispatch(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_axis_set_value(axes, ABS_PRESSURE, pressure);
|
||||||
litest_tablet_motion(dev, 70, 70, axes);
|
litest_tablet_motion(dev, 70, 70, axes);
|
||||||
libinput_dispatch(li);
|
libinput_dispatch(li);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue