forked from AuroraMiddleware/gtk
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
This commit is contained in:
parent
e75df3dcd3
commit
d26a3c28d0
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user