Xi2 touchpad gesture support
This MR implements touchpad gesture support as XI 2.4.
In the current form, gestures work in many ways similarly to the regular pointer button events. The important points are as follows:
-
If a begin gesture event is sent to the client, it will get an end event
-
The begin event defines what client the gesture sequence will be sent to, if at all. This begin event can be shuffled around by XIReplayDevice and only the last client will get full sequence.
-
An active device grab will always consume gesture events, regardless of whether the grab is core, XI or XI2, or what mask it has.
-
Master device only supports a single gesture sequence concurrently. All others will be ignored.
-
Gestures are almost completely independent of any other events. E.g. the fact that we disallow simultaneous touch and gesture events does not simplify anything on the implementation side.
Implementation PRs:
libinput input driver: xorg/driver/xf86-input-libinput!17 (merged)
libXi: xorg/lib/libxi!5 (merged)
X server: xorg/xserver!530 (merged)