wayland: Check the drag focus before processing XDND dest-side messages

If the drag dest surface suddenly disappears, we may find ourselves
processing an XdndPosition message that was sent before the X11 drag
source had an opportunity to find out.

In that case mutter does know, so double check before processing the
messages.
This commit is contained in:
Carlos Garnacho 2015-09-28 14:40:53 +02:00
parent ebeca983c7
commit 6f64d6b0aa

View File

@ -1284,6 +1284,9 @@ meta_xwayland_selection_handle_client_message (MetaWaylandCompositor *compositor
MetaWaylandDragGrab *drag_grab = compositor->seat->data_device.current_grab; MetaWaylandDragGrab *drag_grab = compositor->seat->data_device.current_grab;
MetaWaylandSurface *drag_focus = meta_wayland_drag_grab_get_focus (drag_grab); MetaWaylandSurface *drag_focus = meta_wayland_drag_grab_get_focus (drag_grab);
if (!drag_focus)
return FALSE;
if (event->message_type == xdnd_atoms[ATOM_DND_ENTER]) if (event->message_type == xdnd_atoms[ATOM_DND_ENTER])
{ {
/* Bit 1 in data.l[1] determines whether there's 3 or less mimetype /* Bit 1 in data.l[1] determines whether there's 3 or less mimetype