Blob Blame History Raw
From 02cf70bf367f445fd81cf2fd4548f0e6db94f45c Mon Sep 17 00:00:00 2001
From: David King <amigadave@amigadave.com>
Date: Tue, 11 Nov 2014 16:37:05 +0000
Subject: [PATCH] Fix moving desktop link files by drag and drop

Rather than populating the drag data using the activation URI, which for
desktop link files is that of the link destination, do so only for
regular files, and for desktop link files use the real file URI instead.

https://bugzilla.redhat.com/show_bug.cgi?id=1080484
---
 libnautilus-private/nautilus-canvas-dnd.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/libnautilus-private/nautilus-canvas-dnd.c b/libnautilus-private/nautilus-canvas-dnd.c
index 3fd46e7..3fdc8a1 100644
--- a/libnautilus-private/nautilus-canvas-dnd.c
+++ b/libnautilus-private/nautilus-canvas-dnd.c
@@ -237,8 +237,15 @@ icon_get_data_binder (NautilusCanvasIcon *icon, gpointer data)
 
 	uri = nautilus_canvas_container_get_icon_uri (container, icon);
 	if (!eel_uri_is_desktop (uri)) {
-		g_free (uri);
-		uri = nautilus_canvas_container_get_icon_activation_uri (container, icon);
+		NautilusFile *file;
+
+		file = nautilus_file_get_existing_by_uri (uri);
+
+		/* TODO: expose nautilus-file.c:is_desktop_file */
+		if (!nautilus_file_is_mime_type (file, "application/x-desktop")) {
+			g_free (uri);
+			uri = nautilus_canvas_container_get_icon_activation_uri (container, icon);
+		}
 	}
 
 	if (uri == NULL) {
-- 
2.1.0