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, 4 Feb 2023 15:14:39 +0000 (15:14 +0000)
commit8d38e108c8ed85b834c4b11c92f9d2e591c95af5
treeac8cb503f0cdc47170fbc26c9fc3e7ca6cba99d3
parent462101e2e184a7d6009bf29cd59f88e30b424765
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