[mutter/wip/dnd-surface2: 15/18] wayland: Store whether the	wl_data_source has a target selected
- From: Carlos Garnacho <carlosg src gnome org>
 
- To: commits-list gnome org
 
- Cc: 
 
- Subject: [mutter/wip/dnd-surface2: 15/18] wayland: Store whether the	wl_data_source has a target selected
 
- Date: Tue, 30 Sep 2014 15:32:43 +0000 (UTC)
 
commit 827e0c23c5ff770a270f8e28a9b0884694eeddbb
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Sep 30 17:09:11 2014 +0200
    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 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c
index 2aebc14..7e8cdc6 100644
--- a/src/wayland/meta-wayland-data-device.c
+++ b/src/wayland/meta-wayland-data-device.c
@@ -47,6 +47,7 @@ struct _MetaWaylandDataSource
 {
   struct wl_resource *resource;
   struct wl_array mime_types;
+  gboolean has_target;
 };
 
 static void
@@ -68,7 +69,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
@@ -317,7 +321,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;
 
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]