Bug 90990 - AlpsPS/2 ALPS DualPoint TouchPad scrolling is jumpy
Summary: AlpsPS/2 ALPS DualPoint TouchPad scrolling is jumpy
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-16 09:10 UTC by Ignacio Casal Quinteiro
Modified: 2015-06-23 22:42 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
jumpy log (142.74 KB, text/plain)
2015-06-16 09:12 UTC, Ignacio Casal Quinteiro
Details

Description Ignacio Casal Quinteiro 2015-06-16 09:10:36 UTC
<nacho> whot, btw I have another bug but not sure whether it could be in libinput or in gtk itself
<nacho> whot, scrolling seems a bit jumpy
<nacho> whot, and if in i.e gedit I go to the end of the document, I keep scrolling even though it is the end of the document, and I scroll up right after that, I get a big jump up

For other bug reports related to my touchpad see #90980 and #90590

evemu log file is following
Comment 1 Ignacio Casal Quinteiro 2015-06-16 09:12:09 UTC
Created attachment 116530 [details]
jumpy log

And here the log
Comment 2 Peter Hutterer 2015-06-18 23:06:37 UTC
ok, afaict what's happening here is that you set the finger down, then move it and edge scrolling doesn't trigger until you pass the built-in motion threshold (5mm). When you pass it, the first scroll event includes the full motion so far but it's accelerated too which causes that massive jump.

I guess that leaves three options:
* reduce the initial threshold, but would likely cause the same jump even at 3mm and I don't want to go below that
* don't release the full distance but just the last delta when we hit the threshold. this would add a dead zone to scrolling
* replay the motion history in full once the threshold is hit. this would only add a slight delay to scrolling
Comment 3 Peter Hutterer 2015-06-19 00:17:16 UTC
Test packages for the three outlined above:
1) 3mm threshold: http://koji.fedoraproject.org/koji/taskinfo?taskID=10152166
2) last-delta: http://koji.fedoraproject.org/koji/taskinfo?taskID=10152173
3) replay: http://koji.fedoraproject.org/koji/taskinfo?taskID=10152180

Note that 3 is the technically best solution but is mostly pointless in X since we don't use the event timestamps - the server adds their own. So I don't expect that to be much of an improvement. This may actually work better in a pure wayland context but even there I doubt it since the events still come in simultaneously and thus render at the same time.


For 2: that's not the complete solution yet since it'll have the same deadzone for scroll timeouts (and we def. don't want that). I just felt lazy :)
Comment 4 Ignacio Casal Quinteiro 2015-06-21 16:15:57 UTC
So 3 I am not going to try it since I am with X. I just tried 2 and it seems much better, at least I do not see the jumpy problem with it. Do you want me to try 1 as well?
Comment 5 Peter Hutterer 2015-06-21 23:52:24 UTC
2 includes 1, they're all on top of each other. It' be interesting if 1 alone is enough so please do give it a try.
Comment 6 Peter Hutterer 2015-06-22 02:18:19 UTC
(In reply to Peter Hutterer from comment #3)
> For 2: that's not the complete solution yet since it'll have the same
> deadzone for scroll timeouts (and we def. don't want that). I just felt lazy
> :)

note to self: we already have that deadzone anyway for timeout-based scrolling, so leaving the current behaviour shouldn't be much of an issue then.
Comment 7 Ignacio Casal Quinteiro 2015-06-22 21:37:38 UTC
So I just tried 1 and it seems to be less jumpy than before, though I still feel it a bit jumpy even though now it is hard to notice. From 1 to 2 I'd say 2 is a bit better but dunno it is hard to say without being able to test both side by side :)
Comment 9 Peter Hutterer 2015-06-23 22:42:16 UTC
commit abc8c0d6c29ce60275ff8a35fc7bdbbf6407969b
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 19 10:11:13 2015 +1000

    touchpad: reduce edge scroll motion threshold to 3mm


commit f783dae0a70e660f8fc0175b4a702bd3f9953d7d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 19 09:21:58 2015 +1000

    touchpad: only send most recent edge delta when triggering threshold


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.