summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-dnd.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2008-01-15 15:50:17 +0000
committerAlexander Larsson <alexl@src.gnome.org>2008-01-15 15:50:17 +0000
commite2b876acaec08ba75ff5d88f4f795a8b0284e141 (patch)
tree9ec00a48be2e48d5fcc0e4cf263c3b0966d2fa6a /libnautilus-private/nautilus-dnd.c
parentd0ae165fe15c076c786a95188e1ed2b44783fcdd (diff)
downloadnautilus-e2b876acaec08ba75ff5d88f4f795a8b0284e141.tar.gz
Add nautilus_drag_uris_local
2008-01-15 Alexander Larsson <alexl@redhat.com> * libnautilus-private/nautilus-dnd.[ch]: Add nautilus_drag_uris_local * libnautilus-private/nautilus-tree-view-drag-dest.c: Don't copy/move files if you dnd within the same location (#508216) svn path=/trunk/; revision=13610
Diffstat (limited to 'libnautilus-private/nautilus-dnd.c')
-rw-r--r--libnautilus-private/nautilus-dnd.c32
1 files changed, 25 insertions, 7 deletions
diff --git a/libnautilus-private/nautilus-dnd.c b/libnautilus-private/nautilus-dnd.c
index c1a4d4640..e4a24769b 100644
--- a/libnautilus-private/nautilus-dnd.c
+++ b/libnautilus-private/nautilus-dnd.c
@@ -202,9 +202,9 @@ nautilus_drag_build_selection_list (GtkSelectionData *data)
return result;
}
-
-gboolean
-nautilus_drag_items_local (const char *target_uri_string, const GList *selection_list)
+static gboolean
+nautilus_drag_file_local_internal (const char *target_uri_string,
+ const char *first_source_uri)
{
/* check if the first item on the list has target_uri_string as a parent
* FIXME:
@@ -214,15 +214,12 @@ nautilus_drag_items_local (const char *target_uri_string, const GList *selection
GFile *target, *item, *parent;
gboolean result;
- /* must have at least one item */
- g_assert (selection_list);
-
result = FALSE;
target = g_file_new_for_uri (target_uri_string);
/* get the parent URI of the first item in the selection */
- item = g_file_new_for_uri (((NautilusDragSelectionItem *)selection_list->data)->uri);
+ item = g_file_new_for_uri (first_source_uri);
parent = g_file_get_parent (item);
g_object_unref (item);
@@ -232,6 +229,27 @@ nautilus_drag_items_local (const char *target_uri_string, const GList *selection
}
return result;
+}
+
+gboolean
+nautilus_drag_uris_local (const char *target_uri,
+ const GList *source_uri_list)
+{
+ /* must have at least one item */
+ g_assert (source_uri_list);
+
+ return nautilus_drag_file_local_internal (target_uri, source_uri_list->data);
+}
+
+gboolean
+nautilus_drag_items_local (const char *target_uri_string,
+ const GList *selection_list)
+{
+ /* must have at least one item */
+ g_assert (selection_list);
+
+ return nautilus_drag_file_local_internal (target_uri_string,
+ ((NautilusDragSelectionItem *)selection_list->data)->uri);
}
gboolean