Bug 97194

Summary: touchpad jumping cursor after double-tap
Product: Wayland Reporter: zetxx <opensuser>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: evemu
the rest
one more
0001-touchpad-reset-the-motion-history-when-we-release-a-.patch

Description zetxx 2016-08-02 21:08:16 UTC
Created attachment 125496 [details]
evemu

saw this error in x11 log and followed list of requirements from here: https://wayland.freedesktop.org/libinput/doc/1.4.0/reporting_bugs.html#evemu

jumping was reproduced while i recorder evemu file, wasnt big jump this time, but some times it jump with more than 3 cm.

attaching files
Comment 1 zetxx 2016-08-02 21:09:04 UTC
Created attachment 125497 [details]
the rest
Comment 2 Peter Hutterer 2016-08-03 08:03:29 UTC
can you get me a shorter recording for this please? the jump is somewhere halfway into this recording which makes it a bit hard to isolate.
Comment 3 zetxx 2016-08-03 19:12:01 UTC
Created attachment 125512 [details]
one more

here it is, it happened only once at the end of the recording
Comment 4 Peter Hutterer 2016-08-04 05:38:50 UTC
urgh, this is still north of 1500 events to sift through. for next time, please keep it as short as possible, ideally only one sequence.

but something is seriously wrong with this touchpad. it suggests you recorded 40 finger sequences here but a large percentage of those have no or hardly any events. e.g. see 1.988464,  2.148737, 3.255834, 9.491922, 9.644970
This suggests that the hardware loses tracking here and thinks the finger is up when it is still down. Since I don't know what you did to get this recording I'm assuming you had the finger down for most of the time, just executing a couple of normal motions?

2.148737 shows up as a jump her but event-wise it looks like a normal (albeit) short touch.

12.063640 is the second jump (could be the one you referred to) and that is probably a bug. The issue here is that the finger starts on Y:138, the second finger sets down, finger 1 moves to 151 with two fingers down, then 178 in the same frame the second finger is released. The two finger movment doesn't trigger a gesture (probably not hitting the thresholds, doesn't matter anyway). The last Y event is in the same frame as the finger release and triggers a motion event (from 151 - 178 device coords) - that's the jump seen. Sequence ends at 12.200861.

The main question now is: is this the jump you're talking about? the one on 2-to-1 finger transition?
Comment 5 zetxx 2016-08-05 05:13:30 UTC
it is really dificult for me to capture it because it happens in a series.. some times there is no jumping at all for lets say 10 min, and sometimes cursor jumps 10 times In a row, last record took me 30 min because i wanted to capture shord period of time.
jumping is happening only when i tap with two fingers, my action was tapping few times with two fingers.
Comment 6 Peter Hutterer 2016-08-05 05:18:04 UTC
fwiw, if you grab evemu 2.4 or later it has a --autorestart option that creates new recordings after a given timeout. Set it to say 3 seconds and you'll get a new file whenever you don't use the touchpad for 3 seconds. This should make things a lot easier to capture.

(In reply to zetxx from comment #5)
> jumping is happening only when i tap with two fingers, my action was tapping
> few times with two fingers.

oh, ok. so is this the issue then, that the cursor jumps on two-finger taps? that would be a lot easier to detect and deal with.
Comment 7 zetxx 2016-08-05 10:21:08 UTC
(In reply to Peter Hutterer from comment #6)
> fwiw, if you grab evemu 2.4 or later it has a --autorestart option that
> creates new recordings after a given timeout. Set it to say 3 seconds and
> you'll get a new file whenever you don't use the touchpad for 3 seconds.
> This should make things a lot easier to capture.
> 
> (In reply to zetxx from comment #5)
> > jumping is happening only when i tap with two fingers, my action was tapping
> > few times with two fingers.
> 
> oh, ok. so is this the issue then, that the cursor jumps on two-finger taps?
correct
i will try to make another capture later today
Comment 8 Peter Hutterer 2016-08-08 02:32:12 UTC
note to self: what we probably need here is some feedback from the tapping code to tell us when a tap has been triggered. if so, we need a motion history reset on the touch to avoid the jump.
Comment 9 Peter Hutterer 2016-08-09 05:13:51 UTC
Created attachment 125623 [details] [review]
0001-touchpad-reset-the-motion-history-when-we-release-a-.patch

Please give this one a try and let me know how you go
Comment 10 zetxx 2016-08-13 09:45:54 UTC
sorry for the delay but unfortunately im on road and will check it after few days
Comment 11 Peter Hutterer 2016-08-22 03:43:29 UTC
closing this for now but please do reopen it if you find it didn't fix the issue

commit 3cb60130c182cb4bbfa8f908218fb12e84866cd5
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Aug 4 15:23:43 2016 +1000

    touchpad: on a non-clickpad, reset the motion history on nfingers change

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.