Kinetic scroll in libinput Xorg driver

Bill Spitzak spitzak at gmail.com
Thu Oct 27 01:49:50 UTC 2016


On Tue, Oct 25, 2016 at 3:06 PM, Peter Hutterer
<peter.hutterer at who-t.net> wrote:

>> @Bill: What Peter says is that there could be some applications that
>> implement special behaviors when you scroll while at the end of the
>> file/context/whatever.

I don't see

>> Scroll events are sends to the window below the
>> mouse whatever the focus, and so moving the mouse over another window while
>> a kinetic scroll is pending will send scroll events to this new window...
>> Bad behavior...

Actually this seems bad even for normal scroll events. I am using a
trackball with a scroll ring, and it mechanically has some "kinetic"
behavior, and in fact I just tried it and quickly scrolling then
moving the mouse across a border causes both applications to scroll
some. My impression is that this is not desirable, I want all the
scrolling to go to the first program. The compositor could use a
timeout to do this.

My trackball is a good example of why I worry about clients doing
gestures. I probably need to disable kinetic scroll and I am worried
that some clients will not do it. It would be nice if this could
easily be disabled in every app by doing something to the compositor.

I would also look into how kinetic scrolling is being done on other
platforms. If they send events then we are really going to be stuck
trying to make RDP work on those platforms. You would at least have to
turn off the kinetic scrolling in the clients.

>> Well, maybe using a new scroll source
>> like LIBINPUT_POINTER_AXIS_SOURCE_KINETIC could be a solution. I'm very new
>> to wayland and co. and I'm probably not legitimate to make this kind of
>> choices.
>
> I don't think this would help much. Adding a new source means we need it
> supported on the client side by toolkits. And at that point you might
> as well get proper kinetic scrolling implemented there.

The extra field added to the scroll events would be in a new api
version. Old clients would still get all the events but could not tell
if they were kinetic scroll events or not.


More information about the wayland-devel mailing list