[PATCH libinput 1/2] Change the scroll step distance to 15 and document it as degrees

Bill Spitzak spitzak at gmail.com
Mon Jan 19 17:49:36 PST 2015


I really find it doubtful that users are thinking about how many times 
the scroll wheel has revolved about it's axis! Much more likely is the 
tangent distance that the edge of the scroll wheel has moved.

On a really typical mouse that I have it seems to be about 2.5mm per 
click. Looking at it from the side I think maybe I get 4 clicks for a 45 
degree rotation, which means one click is 11.25 degrees.

I also have a Kensington track ball with a big ring around it that you 
rotate for the scroll wheel, I suppose then somebody would think about 
angle. I counted and it is doing 42 steps for a full rotation, or 8.6 
degrees per click.

Windows api, which probably should be paid attention to just because of 
the existence of software, indicates that it mulitplies the clicks by 
120 (from WM_MOUSEWHEEL docs):

"The wheel rotation will be a multiple of WHEEL_DELTA, which is set at 
120. This is the threshold for action to be taken, and one such action 
(for example, scrolling one increment) should occur for each delta.
The delta was set to 120 to allow Microsoft or other vendors to build 
finer-resolution wheels (a freely-rotating wheel with no notches) to 
send more messages per rotation, but with a smaller value in each 
message. To use this feature, you can either add the incoming delta 
values until WHEEL_DELTA is reached (so for a delta-rotation you get the 
same response), or scroll partial lines in response to the more frequent 
messages. You can also choose your scroll granularity and accumulate 
deltas until it is reached."

I remember doing some stuff with this and pretty much had to assume each 
event was a wheel click, as the suggested summation did not really work 
and would quickly get out of sync with the clicks. Assuming other 
software did this as well, it would explain why such "finer-resolution 
wheels" disappeared from the market: event the tiniest motion would be 
treated as a full wheel click by this software and would make your 
window scroll far too fast.

All in all this change seems pretty questionable.

On 01/11/2015 03:12 PM, Peter Hutterer wrote:
> Similar to the mouse resolution, let's make the scroll distance a sensible
> predictable value. Most mice use a 15 degree angle per scroll click, so let's
> change to that. This will alter behaviour in clients that expect 10 but it
> shouldn't be too bad. We return doubles anyway for the axis value, so that
> leaves the option of really fine-grained step sizes.
>
> We currently assume all mice have 15 degree angles. Like the DPI settings, it
> will require a udev property to be set. Patch for that to follow.


More information about the wayland-devel mailing list