wayland: Add fake mimetype for local DnD cases

If there are no targets, DnD is probably intended to be local,
add a mimetype for matching then. The wayland protocol requires
at least one wl_data_offer.target call with the mimetype selected
for transfer.
This commit is contained in:
Carlos Garnacho 2016-10-26 21:31:58 +02:00
parent 125ef3539c
commit c4f1545c5e

View File

@ -549,6 +549,15 @@ _gdk_wayland_window_drag_begin (GdkWindow *window,
g_free (mimetype);
}
/* If there's no targets this is local DnD, ensure we create a target for it */
if (!context->targets)
{
gchar *local_dnd_mime;
local_dnd_mime = g_strdup_printf ("application/gtk+-local-dnd-%x", getpid());
wl_data_source_offer (context_wayland->data_source, local_dnd_mime);
g_free (local_dnd_mime);
}
return context;
}