summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-canvas-container.c
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2013-03-06 16:00:29 -0500
committerCosimo Cecchi <cosimoc@gnome.org>2013-03-06 16:00:29 -0500
commit1d1488cbc96ee9f7dd69b708e093d274a5374878 (patch)
tree396d56df993e657d18ed4ccb58df2df6b52849be /libnautilus-private/nautilus-canvas-container.c
parent26d023a289c2160147bc02f1e18243f8212c82eb (diff)
downloadnautilus-1d1488cbc96ee9f7dd69b708e093d274a5374878.tar.gz
Always use activation URI for DnD sources
This ensures DnD from special locations (e.g. Recent or Trash) always works even for targets that do not use gvfs.
Diffstat (limited to 'libnautilus-private/nautilus-canvas-container.c')
-rw-r--r--libnautilus-private/nautilus-canvas-container.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/libnautilus-private/nautilus-canvas-container.c b/libnautilus-private/nautilus-canvas-container.c
index ce3ae9702..145056552 100644
--- a/libnautilus-private/nautilus-canvas-container.c
+++ b/libnautilus-private/nautilus-canvas-container.c
@@ -226,6 +226,7 @@ enum {
MIDDLE_CLICK,
GET_CONTAINER_URI,
GET_ICON_URI,
+ GET_ICON_ACTIVATION_URI,
GET_ICON_DROP_TARGET_URI,
GET_STORED_ICON_POSITION,
ICON_POSITION_CHANGED,
@@ -4847,6 +4848,16 @@ nautilus_canvas_container_class_init (NautilusCanvasContainerClass *class)
g_cclosure_marshal_generic,
G_TYPE_STRING, 1,
G_TYPE_POINTER);
+ signals[GET_ICON_ACTIVATION_URI]
+ = g_signal_new ("get-icon-activation-uri",
+ G_TYPE_FROM_CLASS (class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (NautilusCanvasContainerClass,
+ get_icon_activation_uri),
+ NULL, NULL,
+ g_cclosure_marshal_generic,
+ G_TYPE_STRING, 1,
+ G_TYPE_POINTER);
signals[GET_ICON_DROP_TARGET_URI]
= g_signal_new ("get-icon-drop-target-uri",
G_TYPE_FROM_CLASS (class),
@@ -6964,6 +6975,20 @@ nautilus_canvas_container_get_icon_uri (NautilusCanvasContainer *container,
}
char *
+nautilus_canvas_container_get_icon_activation_uri (NautilusCanvasContainer *container,
+ NautilusCanvasIcon *icon)
+{
+ char *uri;
+
+ uri = NULL;
+ g_signal_emit (container,
+ signals[GET_ICON_ACTIVATION_URI], 0,
+ icon->data,
+ &uri);
+ return uri;
+}
+
+char *
nautilus_canvas_container_get_icon_drop_target_uri (NautilusCanvasContainer *container,
NautilusCanvasIcon *icon)
{