gdk/wayland: Track last touch serial on seat

Guido Günther requested to merge guidog/gtk:xdg-activation-0-serial into gtk-3-24

I was wondering why tokens submitted by a GTK3 based launchee would always have a 0 serial on a touch based device (and would thus be rejected by the compositor).

Since the touch data is released on touch up _gdk_wayland_seat_get_last_implicit_grab_serial will return 0 serial most of the time for touch only devices. This breaks xdg activation as the compositor will reject tokens that have a 0 serial set via xdg_activation_token_v1_set_serial.

Avoid that by tracking touch serials on the seat itself too.

We only use that if no other touch serial was picked to make sure we dont break the sequence <-> serial relation.

This unbreaks the phosh's splash screen timing out on recent GTK3.

Edited by Guido Günther

Merge request reports