mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-29 06:51:10 +00:00
x11/dnd: Ignore grab broken events from other devices than our DnD device.
The GdkDragContext should only listen to GDK_GRAB_BROKEN events sent to its own pointer device. It turns out that the passive key grabs mistake GDK into sending a GdkEventGrabBroken on the master keyboard, which the DnD machinery mistakes as a signal to cancel the operation. https://bugzilla.gnome.org/show_bug.cgi?id=766442
This commit is contained in:
parent
783c302198
commit
1d04bdf845
@ -3042,6 +3042,10 @@ gdk_dnd_handle_grab_broken_event (GdkDragContext *context,
|
|||||||
event->grab_window == x11_context->ipc_window)
|
event->grab_window == x11_context->ipc_window)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
if (gdk_event_get_device ((GdkEvent *) event) !=
|
||||||
|
gdk_drag_context_get_device (context))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR);
|
gdk_drag_context_cancel (context, GDK_DRAG_CANCEL_ERROR);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user