gdk/surface: Handle clicks outside client surfaces
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 23 Dec 2022 15:04:02 +0000 (16:04 +0100)
committerSimon McVittie <smcv@debian.org>
Sat, 9 Sep 2023 19:32:02 +0000 (20:32 +0100)
commit0e7b7a2174d725f1d156aed10902cd28cb20e06e
treef85de9b3056ab764c8108121b99d5dfd672c0eee
parent6309fae43787b0b90efa5697c2017bdb4a0e66da
gdk/surface: Handle clicks outside client surfaces

The owner_events=TRUE grab makes GDK on X11 see events happening
outside every client window as received on the grab window.
Additionally check that the pointer is inside the grab window
(i.e. it received GDK_CROSSING_NORMAL crossing events for the
core pointer) in order to handle clicks happening outside client
windows.

These new paths are expected to be a no-op on Wayland, and to
also work for touchscreen input on X11, due to emulated pointer
events.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5364
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5400
Origin: upstream, 4.8.4, commit:826030dcc2e79dcd76d21c118c6a0a3f0994c284

Gbp-Pq: Name gdk-surface-Handle-clicks-outside-client-surfaces.patch
gdk/gdksurface.c
gdk/gdksurfaceprivate.h