Smooth scrolling again

Peter Hutterer peter.hutterer at who-t.net
Mon Nov 8 21:07:28 PST 2010


On Sun, Nov 07, 2010 at 02:56:22PM +0100, Max Schwarz wrote:
> I finally found some time for smooth scrolling.
> I've got rebased patches against git versions for
> xserver, xf86-input-evdev, xf86-input-synaptics
> in my github repo at https://github.com/x-quadraht/pscroll.
> 
> Would you mind checking them and telling me what needs to be done to get them 
> merged?
> 
> Another question: The output from the synaptics driver fluctuates quite a bit 
> when one tries to stay at the current scrolling position. Do you think 
> filtering would need to be implemented in the synaptics driver or globally in 
> the server?

patches looking good and simple, I like it.
a few comments regarding the evdev patch:

wheel resolution: this is a bit confusing (a man page entry would help).
you're multiplying the actual value with the resolution value during event
generation. the default value is 42? I realise smooth scrolling is a
subset of Life, Universe and Everything, but how did you get to this number.
why is the resolution even necessary? 
also, maybe use a float? otherwise, slowing the wheel down would be tricky.

mouse wheel emulation doesn't take the resolution into account - is this
intended? is there a use-case where it should?

initialisation code doesn't quite work this way. the emulateWheel.enabled is
a dynamic variable and can change at runtime, well past DEVICE_INIT when
this code is called. so you either need to unconditionally set up the wheel
axes or change the device's capabilities at runtime (which we don't really
have the hooks for yet, so you're down to option 1 :)
keep in mind that properties are (hopefully) set by the desktop environment,
so you can't expect the value to be the user's value on device startup.

the warning about "using build-in value" might as well print that value.

are the axis labels initialized correctly? xinput --list-prop should tell
you. I assume so, given the pscrolltest checks for it, but please
double-check.

I don't understand the no_integration stuff. aside from it being a bit of a
misnomer, I'm missing the point of what is supposed to do. if the axis is in
relative mode, you can go past the axis ranges anyway. In absolute mode,
well, are wheels ever in absolute mode? I know there's ABS_WHEEL, but I
think we convert them over to relative events too, no?

Cheers,
  Peter


More information about the xorg-devel mailing list