diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-04-23 03:11:36 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-04-23 03:11:36 +0000 |
commit | 4e66e782eac02638ddabb90079b59ce5eb8ed604 (patch) | |
tree | 6cac0a7f80dbb0aac71a1f682a30f53b42ae046d | |
parent | 13f9ca60d52772895c4393bb3134a151b81f334f (diff) | |
parent | d225f146575e6eae79562cca73d65234e08f3bcb (diff) | |
download | gtk+-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.c | 7 |
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, |