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.
This commit is contained in:
Carlos Garnacho 2014-09-30 17:09:11 +02:00 committed by Jasper St. Pierre
parent 0510c3a621
commit f211b3ec90

View File

@ -46,6 +46,7 @@ struct _MetaWaylandDataSource
{ {
struct wl_resource *resource; struct wl_resource *resource;
struct wl_array mime_types; struct wl_array mime_types;
gboolean has_target;
}; };
static void static void
@ -67,7 +68,10 @@ data_offer_accept (struct wl_client *client,
* this be a wl_data_device request? */ * this be a wl_data_device request? */
if (offer->source) 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 static void
@ -280,7 +284,10 @@ data_device_end_drag_grab (MetaWaylandDragGrab *drag_grab)
} }
if (drag_grab->drag_data_source) 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; drag_grab->seat->data_device.current_grab = NULL;