[gtk/gtk-4-2: 69/91] gdk: Avoid synthetic motion confusion
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gtk-4-2: 69/91] gdk: Avoid synthetic motion confusion
- Date: Tue, 4 May 2021 02:05:42 +0000 (UTC)
commit d26a3c28d0b59f61073bb4ef1da3bb6cea2d5722
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Apr 22 19:51:17 2021 -0400
gdk: Avoid synthetic motion confusion
Don't emit a synthetic motion event on a surface
that is grab-shadowed by a popup. This has been
known to confuse GTK, at times.
Fixes: #3439
gdk/gdksurface.c | 7 +++++++
1 file changed, 7 insertions(+)
---
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,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]