From f211b3ec9046547be8ce9644383b57acacf5a378 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 30 Sep 2014 17:09:11 +0200 Subject: [PATCH] wayland: Store whether the wl_data_source has a target selected It will be useful to check whether DnD is going to fail or not. --- src/wayland/meta-wayland-data-device.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c index ffa8d7d28..7697ca744 100644 --- a/src/wayland/meta-wayland-data-device.c +++ b/src/wayland/meta-wayland-data-device.c @@ -46,6 +46,7 @@ struct _MetaWaylandDataSource { struct wl_resource *resource; struct wl_array mime_types; + gboolean has_target; }; static void @@ -67,7 +68,10 @@ data_offer_accept (struct wl_client *client, * this be a wl_data_device request? */ if (offer->source) - wl_data_source_send_target (offer->source->resource, mime_type); + { + wl_data_source_send_target (offer->source->resource, mime_type); + offer->source->has_target = mime_type != NULL; + } } static void @@ -280,7 +284,10 @@ data_device_end_drag_grab (MetaWaylandDragGrab *drag_grab) } if (drag_grab->drag_data_source) - wl_list_remove (&drag_grab->drag_data_source_listener.link); + { + drag_grab->drag_data_source->has_target = FALSE; + wl_list_remove (&drag_grab->drag_data_source_listener.link); + } drag_grab->seat->data_device.current_grab = NULL;