[Wayland-bugs] [Bug 104533] Hysteresis detection fails on the single-touch axes after a while
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue Jan 9 02:13:50 UTC 2018
https://bugs.freedesktop.org/show_bug.cgi?id=104533
Peter Hutterer <peter.hutterer at who-t.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |peter.hutterer at who-t.net
Status|NEW |NEEDINFO
--- Comment #2 from Peter Hutterer <peter.hutterer at who-t.net> ---
I think this diff should do it. Not ideal, but better than trying to rewrite
all of the semi-mt event code without a device to test... James, please give
this one a test, should show up a fuzz of 8 for ABS_X/Y now.
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index ee5466a374bf..0e04275e0d74 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -1280,6 +1280,14 @@ static void set_input_params(struct psmouse *psmouse,
INPUT_MT_POINTER |
(cr48_profile_sensor ?
INPUT_MT_TRACK : INPUT_MT_SEMI_MT));
+
+ /* For semi-mt devices we send ABS_X/Y ourselves instead of
+ * input_mt_report_pointer_emulation. But
+ * input_mt_init_slots() resets the fuzz to 0, leading to a
+ * filtered ABS_MT_POSITION_X but an unfiltered ABS_X
+ * position. Let's re-initialize ABS_X/Y here. */
+ if (!cr48_profile_sensor)
+ set_abs_position_params(dev, &priv->info, ABS_X,
ABS_Y);
}
if (SYN_CAP_PALMDETECT(info->capabilities))
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/wayland-bugs/attachments/20180109/d2254fca/attachment.html>
More information about the wayland-bugs
mailing list