From 563268fa9fe0170a9a9da2ca831c25ea4b1208c1 Mon Sep 17 00:00:00 2001 From: Stephen Chandler Paul Date: Tue, 17 Jun 2014 21:17:58 -0400 Subject: [PATCH] tablet: Clear pressure axis when tool loses contact with the tablet Signed-off-by: Stephen Chandler Paul Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- src/evdev-tablet.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/evdev-tablet.c b/src/evdev-tablet.c index 3b82e917..bde3b473 100644 --- a/src/evdev-tablet.c +++ b/src/evdev-tablet.c @@ -343,7 +343,12 @@ sanitize_tablet_axes(struct tablet_dispatch *tablet) tablet->axes[LIBINPUT_TABLET_AXIS_DISTANCE] = 0; } else if (bit_is_set(tablet->changed_axes, LIBINPUT_TABLET_AXIS_PRESSURE) && !tablet_has_status(tablet, TABLET_STYLUS_IN_CONTACT)) { - clear_bit(tablet->changed_axes, LIBINPUT_TABLET_AXIS_PRESSURE); + /* Make sure that the last axis value sent to the caller is a 0 */ + if (tablet->axes[LIBINPUT_TABLET_AXIS_PRESSURE] == 0) + clear_bit(tablet->changed_axes, + LIBINPUT_TABLET_AXIS_PRESSURE); + else + tablet->axes[LIBINPUT_TABLET_AXIS_PRESSURE] = 0; } }