protocols: forward pointer-gestures swipe/pinch/hold

Advertise zwp_pointer_gestures_v1 (v3, with hold) and fan libinput
touchpad gestures out to the client holding seat pointer focus.
The stdin test feed gains swipe/pinch/hold messages driving the same
forwarders in any mode (nested has no host gesture source).

wltest gains --gesture-log plus swipe/pinch/hold feed helpers; smoke
tests cover the global and an exact-value round trip of every gesture
and cancel path.
This commit is contained in:
Andrew Hamilton 2026-09-04 10:13:13 +10:00
parent b189318124
commit 8a71a062ce
5 changed files with 538 additions and 11 deletions

View file

@ -392,6 +392,16 @@ own reachable tab), and modality works identically nested and standalone
(it never depends on the host compositor). Session lock still wins over a
modal.
## Pointer gestures (`pointer-gestures`)
Kick advertises `zwp_pointer_gestures_v1`, so touchpad clients (browsers,
drawing apps, map viewers) receive swipe/pinch/hold gestures. Gestures fan
out to whichever client holds seat pointer focus. In standalone mode real
libinput touchpad gestures feed this; in nested mode the host only offers
`wl_pointer` (no gesture source), so gestures there come from clients that
synthesize them. Relay activity is logged with the `[gesture]` prefix at
`KICK_LOG=2`.
## Logging (`KICK_LOG`)
Quiet by default: a plain launch prints nothing to the launching terminal