Smooth scrolling - results!

Max Schwarz Max at x-quadraht.de
Fri Jun 11 15:33:47 PDT 2010


Hi,

results!
I'm finally content with how the code looks and feels :-)

Comparison:
  before: http://c-palb.de/~max/before.ogg
  after:  http://c-palb.de/~max/after.ogg

The videos don't do the change justice, it feels _much_ more natural.

I had to patch the respective input drivers, the server itself (to support 
non-integrating axes) and Qt4. The patches can be found in my github 
repository (http://github.com/x-quadraht/pscroll). They apply against the 
stable Ubuntu Lucid versions of the packages.
I've set up a small ppa with binary packages (https://launchpad.net/~max-x-
quadraht/+archive/pscroll) but it's not up to date yet (building Qt4 on the 
launchpad build farm takes _ages_).

The thing I would like to work on now is filtering of the valuator events.
As you may notice in the "after" video, the touchpad even picks up some small 
wiggles of my finger when I try to hold the position.
I imagine the "acceleration contexts" Simon mentioned, with a non-linear 
curve, will help to surpress these twitches. I want to avoid to set a hard 
minimum amount of scrolling.
I will look into "wheel acceleration" next...

As I have already mentioned, the change in GTK seems much more complicated 
than in Qt4. Qt has a really nice cross-platform "QScrollEvent" which has a 
delta field with defined units. All GTK (GDK really) has to offer is 
"GdkScrollEvent" which is a counter of how many scroll button presses to 
scroll :-(

Max


More information about the xorg-devel mailing list