$OpenBSD: patch-libnautilus-private_nautilus-canvas-dnd_c,v 1.1 2015/01/07 11:30:37 ajacoutot Exp $

From fa1211f8ed069a3a9e994249caa35e041e835030 Mon Sep 17 00:00:00 2001
From: <nbenitezl+gnome@gmail.com>                  
Date: Sat, 27 Dec 2014 20:24:56 +0500
Subject: dnd: fix dnd issues with Type=Link desktop files

--- libnautilus-private/nautilus-canvas-dnd.c.orig	Sat Jul 19 01:14:34 2014
+++ libnautilus-private/nautilus-canvas-dnd.c	Wed Jan  7 12:26:31 2015
@@ -224,6 +224,7 @@ icon_get_data_binder (NautilusCanvasIcon *icon, gpoint
 	EelIRect widget_rect;
 	char *uri;
 	NautilusCanvasContainer *container;
+	NautilusFile *file;
 
 	context = (CanvasGetDataBinderContext *)data;
 
@@ -236,13 +237,15 @@ icon_get_data_binder (NautilusCanvasIcon *icon, gpoint
 	canvas_rect_world_to_widget (EEL_CANVAS (container), &world_rect, &widget_rect);
 
 	uri = nautilus_canvas_container_get_icon_uri (container, icon);
-	if (!eel_uri_is_desktop (uri)) {
+	file = nautilus_file_get_by_uri (uri);
+	if (!eel_uri_is_desktop (uri) && !nautilus_file_is_nautilus_link (file)) {
 		g_free (uri);
 		uri = nautilus_canvas_container_get_icon_activation_uri (container, icon);
 	}
 
 	if (uri == NULL) {
 		g_warning ("no URI for one of the iterated icons");
+		nautilus_file_unref (file);
 		return TRUE;
 	}
 
@@ -262,6 +265,7 @@ icon_get_data_binder (NautilusCanvasIcon *icon, gpoint
 			   context->iteratee_data);
 
 	g_free (uri);
+	nautilus_file_unref (file);
 
 	return TRUE;
 }
