summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-04-23 03:11:36 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-04-23 03:11:36 +0000
commit4e66e782eac02638ddabb90079b59ce5eb8ed604 (patch)
tree6cac0a7f80dbb0aac71a1f682a30f53b42ae046d
parent13f9ca60d52772895c4393bb3134a151b81f334f (diff)
parentd225f146575e6eae79562cca73d65234e08f3bcb (diff)
downloadgtk+-4e66e782eac02638ddabb90079b59ce5eb8ed604.tar.gz
Merge branch 'synthetic-motion-grab' into 'master'
gdk: Avoid synthetic motion confusion Closes #3439 See merge request GNOME/gtk!3471
-rw-r--r--gdk/gdksurface.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c
index ef6464c43a..589dc4e10c 100644
--- a/gdk/gdksurface.c
+++ b/gdk/gdksurface.c
@@ -2443,6 +2443,7 @@ gdk_surface_ensure_motion (GdkSurface *surface)
GdkEvent *event;
double x, y;
GdkModifierType state;
+ GdkSurface *grab_surface;
if (!surface->request_motion)
return;
@@ -2459,6 +2460,12 @@ gdk_surface_ensure_motion (GdkSurface *surface)
if (!gdk_surface_get_device_position (surface, device, &x, &y, &state))
return;
+ if (gdk_device_grab_info (display, device, &grab_surface, NULL))
+ {
+ if (grab_surface != surface)
+ return;
+ }
+
event = gdk_motion_event_new (surface,
device,
NULL,