Bug 91695 - Pointer jump when lifting one finger in slow two finger scroll
Summary: Pointer jump when lifting one finger in slow two finger scroll
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact:
Depends on:
Reported: 2015-08-20 03:27 UTC by Boyan Ding
Modified: 2016-08-29 21:55 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:

evemu recording (58.00 KB, text/plain)
2015-08-20 03:27 UTC, Boyan Ding
dmesg (64.06 KB, text/plain)
2015-12-05 07:08 UTC, Boyan Ding

Description Boyan Ding 2015-08-20 03:27:53 UTC
Created attachment 117798 [details]
evemu recording

I have a Lenovo Thinkpad E431 with touchpad:
# Input device name: "SynPS/2 Synaptics TouchPad"
# Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1

I find a pointer jump when lifting one finger after two-finger scrolling particularly annoying. It is somewhat difficult to trigger but I managed to find a way to reproduce it more easily. Move two fingers upwards very slowly and lift middle finger in the way, sometimes the pointer jumps considerably downwards.

The recording attached triggers the pointer jump 2 times.
Comment 1 Peter Hutterer 2015-08-27 04:05:41 UTC
What kernel is this on?

Looking at 3.529447 it looks like the slot 0 ends but coordinate-wise the slot 1 touch jumps to slot 0. That's causing the jump. Pretty sure Benjamin fixed this upstream already, though I can't remember which patch it was (and the fix was a bit back and forth anyway)
Comment 2 Boyan Ding 2015-08-27 04:13:32 UTC
It is 4.1.5
Comment 3 Peter Hutterer 2015-12-03 04:49:28 UTC
sorry for dropping this on the floor, I only just noticed this is still open. First the question: still an issue with new kernels?
Comment 4 Boyan Ding 2015-12-03 07:07:19 UTC
The problem remains on 4.2.5. I haven't used newer kernels, though.
Comment 5 Benjamin Tissoires 2015-12-04 18:45:06 UTC
Could you please attach a dmesg of your kernel from the boot that we have a little bit more information?

I don't get why you are experiencing these jumps. Both 4.1.5 and 4.2.5 have a commit which split out touches when the distance between 2 fingers is greater than 1 cm. Your recording (at 3.52s) seems to indicate a distance of ~2 cm between your fingers and so there should not be a cursor jump.

There has been some back and forth for this part of the code in the kernel, and we should have fixed this particular case.
It looks like your case is not fully covered (have you tried putting your fingers on the same horizontal level?), and we are screwing here.

Unfortunately, the code we are talking about is the only part in the kernel we do not understand because it is undocumented. We tried pushing documentation but that was simply refused.

The only light of hope (besides reducing the dmax variable in the kernel or trying to space your finger more) is that in theory, the switch of your touchpad in the rmi4 mode might solve this particular issue because we will be using a different code path (not entirely sure here though). This work is still a WIP (for nearly 2 years now).
Comment 6 Boyan Ding 2015-12-05 07:08:54 UTC
Created attachment 120364 [details]
Comment 7 Paviluf 2016-04-11 22:05:44 UTC
I have the same kind of behavior on my HP Chromekook 14 (Falco) on Fedora 23.
What infos should I give to help ?
Comment 8 Paviluf 2016-04-12 23:38:50 UTC
(In reply to paviluf from comment #7)
> I have the same kind of behavior on my HP Chromekook 14 (Falco) on Fedora 23.
> What infos should I give to help ?

For the record I opened a separate bug report for my problem as requested here : https://bugs.freedesktop.org/show_bug.cgi?id=93846#c13
Comment 9 Peter Hutterer 2016-08-03 08:15:00 UTC
We have pointer jump detection now, can you please re-check if the jump still happens? You'll get a log message about the jump but that's also a sign of it kicking in.
Comment 10 Boyan Ding 2016-08-15 06:55:30 UTC
I did see libinput-debug-event reporting kernel driver bug, but that only happen very few times (I only see two times and am not able to reproduce), while jumps of more than 100 (or even 200) units are often reproducible when my two fingers are near.
Comment 11 Peter Hutterer 2016-08-18 06:03:07 UTC
Give this one a try please:
Comment 12 Peter Hutterer 2016-08-18 06:03:44 UTC
doh, I just noticed this one won't work for you - you have a clickpad. nevermind, sorry about the noise.
Comment 14 Peter Hutterer 2016-08-29 21:55:33 UTC
commit aa87d2b25b88b86ddd1471f65e1afceff7fca9c4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Aug 29 10:47:08 2016 +1000

    touchpad: always reset the motion history on finger changes

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.