[PATCH libinput 6/6] touchpad: pretend the jumpy semi-mt touchpad is a single-touch touchpad

Bill Spitzak spitzak at gmail.com
Thu Jul 30 09:54:25 PDT 2015

On Thu, Jul 30, 2015 at 7:45 AM, Hans de Goede <hdegoede at redhat.com> wrote:

+    /* This device has a terrible 2fg resolution, but only for the
>>> +     * second finger, causing scroll jumps when we use the touch points
>>> +     * properly. The first finger resolution is accurate though, so
>>> +     * we simply pretend it's a single touch touchpad with the BTN_TOOL
>>> +     * bits.
>>> +     */
> This comment is wrong, the old-style st coordinates report accurate
> data where as the mt data reports inaccurate data for both fingers
> when 2 fingers are down. What is happening is that when a single finger
> is down the st data is copied over to the mt data slot 0, so as to
> have something to report to user-space which only listens to mt events,
> and as soon as a second finger comes down the driver starts reporting
> the bounding box limits in the mt data, making *both* slots inaccurate.
> So it is not "only for the second finger" nor is "The first finger
> resolution is accurate" really accurate to say :) The first finger as
> reported in the st events is accurate, the first finger reported in the
> mt events is still no good, otherwise we would not need this commit at
> all.

So you are saying this device simultaneously sends accurate st events and
"bad" mt events?

Do all devices simultaneously send st events and mt events? It would seem
an easier fix is to just make what this patch does happen for *all*
devices, rather than special-case. I would suspect the reason for this
behaviour is that is the way the Windows driver works, and that copying the
way that works will make more devices that are tested only on Windows work.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20150730/f6841e75/attachment.html>

More information about the wayland-devel mailing list