I noticed this on my Xubuntu 18.04 Laptop, using the touchpad and the Synaptics driver:
When I scroll down slowly (using the two finger scroll gesture) in, say, LibreOffice Calc (which has rows of cells [Edit: same with scrolling horizontally]) and the commit history in SmartGit (which has rows of commits), the gesture doesn't scroll the view consistently, often not at all. Conversely, the history in Firefox (Ctrl+Shift+H
) does not show this behavior, so maybe it's got something to do with Java?
The behavior seems like a calculation of the form yPos = (int) (yPos + increment)
is taking place: an increment of +0.1
won't work, but an increment of -0.1
or +1.0
will. When the scroll speed is around +1.0
, small changes will push it to round up or down, causing erratic scrolling behavior.
The behavior depends on scroll amounts (slow scrolling shows this more pronouncedly), direction (scrolling up and down are affected differently), the fact that I'm using the touchpad or Synaptics (mouse is not affected by this) and apparently some property of the application (Firefox is not affected).
This seemed related but I'm not using libinput
and my symptoms are different, so I didn't want to try switching to evdev
just yet (I'm glad I got the three finger tap to work with synaptics).
Any ideas how this could be worked around? "evdev is definitely the way to go" is also a welcome response, if you have reasons or experience for saying so.
yPos = (int) (yPos + increment)
. an increment of+0.1
won't work, but an increment of-0.1
or+1.0
will.