nautilus/nautilus-2.26.1-dnd-not-recurse.patch

32 lines
1.2 KiB
Diff

Index: libnautilus-private/nautilus-dnd.c
===================================================================
--- libnautilus-private/nautilus-dnd.c (revision 15162)
+++ libnautilus-private/nautilus-dnd.c (revision 15163)
@@ -437,7 +437,7 @@
gboolean target_is_source_parent;
gboolean source_deletable;
const char *dropped_uri;
- GFile *target, *dropped;
+ GFile *target, *dropped, *dropped_directory;
GdkDragAction actions;
NautilusFile *dropped_file, *target_file;
@@ -519,7 +519,16 @@
/* Compare the first dropped uri with the target uri for same fs match. */
dropped = g_file_new_for_uri (dropped_uri);
- target_is_source_parent = g_file_has_prefix (dropped, target);
+ dropped_directory = g_file_get_parent (dropped);
+ target_is_source_parent = FALSE;
+ if (dropped_directory != NULL) {
+ /* If the dropped file is already in the same directory but
+ is in another filesystem we still want to move, not copy
+ as this is then just a move of a mountpoint to another
+ position in the dir */
+ target_is_source_parent = g_file_equal (dropped_directory, target);
+ g_object_unref (dropped_directory);
+ }
source_deletable = source_is_deletable (dropped);
if ((same_fs && source_deletable) || target_is_source_parent ||