https://bugs.freedesktop.org/show_bug.cgi?id=104533

Peter Hutterer <peter.hutte...@who-t.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |peter.hutte...@who-t.net
             Status|NEW                         |NEEDINFO

--- Comment #2 from Peter Hutterer <peter.hutte...@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.
_______________________________________________
wayland-bugs mailing list
wayland-bugs@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-bugs

Reply via email to