[RFC libinput] Add an API for touchpad gesture events

Peter Hutterer peter.hutterer at who-t.net
Mon Jan 26 18:15:49 PST 2015


On Fri, Jan 23, 2015 at 12:20:55PM +0100, Hans de Goede wrote:
> Hi,
> 
> On 23-01-15 09:51, Jonas Ådahl wrote:
> >On Fri, Jan 23, 2015 at 09:38:06AM +0100, Hans de Goede wrote:
> >>Hi,
> >>
> >>On 23-01-15 07:18, Jonas Ådahl wrote:
> 
> <snip>
> 
> >>>>As for 2 finger swipe at least: isn't that covered by scrolling? with the
> >>>>caller deciding when a scroll event event is a swipe and when it is a scroll
> >>>>event. It's the odd one out of course, but scrolling is a special case and
> >>>>will be the odd one out anyway.
> >>>
> >>>Scrolling doesn't completely cover it because a user can disable
> >>>2-finger scroll for the whole session, and the application won't even
> >>>see the scroll events. If an application wants to handle the 2-finger
> >>>swipe no matter what configuration the user has chosen, then it'd
> >>>probably have to come via something like a gesture API.
> >>
> >>AFAIK there is no such thing as a 2fg swipe on other platforms, why would
> >>we make things difficult to try and support it in the first place ?
> >
> >Well, don't we already have it fully implemented except we call it
> >scroll and only enable it if it (although by default) configured so? I
> >agree though that its not very nice to send out duplicate events for the
> >same gesture, but still, it feels some how wrong to not let applications
> >depend on the most simple swipe (deliberately ignoring 1 finger swipe
> >here) gesture.
> 
> Yes it is the most simple swipe gesture, but it is already taken for
> scrolling and sending 2 events for the user doing a single thing just seems
> very very wrong to me, and I really believe that that is something which
> libinput should never ever do.
> 
> > Also in click-to-scroll configurations, don't we disable 2 finger scroll?
> 
> We don't have click-to-scroll for touchpads, we've edge scrolling or
> 2 finger scrolling.

my first thought here was: should we drop 2-finger scrolling and move it to
swipe events, then let the caller decide when to interpret swipe as scroll.
doable, with a couple of benefits and a couple of drawbacks.

I think what it comes down to though is that scrolling and swiping have two
different usages: scrolling is almost exclusively vertical, with the odd
horizontal component. it's also high-precision with slow finger movement.
swiping is almost exclusively horizontal and usually not very precise, it's
more of a flick than anything.

so I think we could enable 2fg swipe on touchpads and then let libinput
internally decide when to trigger a scroll and when to trigger a swipe. Plus
the subtle hint in the documentation that vertical 2fg swiping is not a good
gesture to rely on in a UI :)

Cheers,
   Peter


More information about the wayland-devel mailing list