summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2008-05-26 22:09:47 +0000
committerCosimo Cecchi <cosimoc@src.gnome.org>2008-05-26 22:09:47 +0000
commitbd682e430ee2fd39b0918f30426cd9dc94a1cb29 (patch)
tree8b7149bb1382320ab51527bac5d48ceeec848138
parente3025ab8f9d0c58f209afdbf91a2a2e04b422856 (diff)
downloadnautilus-bd682e430ee2fd39b0918f30426cd9dc94a1cb29.tar.gz
Select GDK_ACTION_MOVE as default action when DnD-ing a uri list into the
2008-05-27 Cosimo Cecchi <cosimoc@gnome.org> * libnautilus-private/nautilus-dnd.c: (nautilus_drag_default_drop_action_for_uri_list): * libnautilus-private/nautilus-dnd.h: * libnautilus-private/nautilus-icon-dnd.c: (nautilus_icon_container_get_drop_action): Select GDK_ACTION_MOVE as default action when DnD-ing a uri list into the trash. (#534769). svn path=/branches/gnome-2-22/; revision=14201
-rw-r--r--ChangeLog10
-rw-r--r--libnautilus-private/nautilus-dnd.c12
-rw-r--r--libnautilus-private/nautilus-dnd.h2
-rw-r--r--libnautilus-private/nautilus-icon-dnd.c8
4 files changed, 31 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 883729def..a1231ba1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-05-27 Cosimo Cecchi <cosimoc@gnome.org>
+
+ * libnautilus-private/nautilus-dnd.c:
+ (nautilus_drag_default_drop_action_for_uri_list):
+ * libnautilus-private/nautilus-dnd.h:
+ * libnautilus-private/nautilus-icon-dnd.c:
+ (nautilus_icon_container_get_drop_action):
+ Select GDK_ACTION_MOVE as default action when DnD-ing a uri list
+ into the trash. (#534769).
+
2008-05-23 Christian Neumair <cneumair@gnome.org>
* libnautilus-private/nautilus-directory-async.c (seen_inode),
diff --git a/libnautilus-private/nautilus-dnd.c b/libnautilus-private/nautilus-dnd.c
index 97a502ff9..3613d2890 100644
--- a/libnautilus-private/nautilus-dnd.c
+++ b/libnautilus-private/nautilus-dnd.c
@@ -453,6 +453,18 @@ nautilus_drag_default_drop_action_for_icons (GdkDragContext *context,
}
+GdkDragAction
+nautilus_drag_default_drop_action_for_uri_list (GdkDragContext *context,
+ const char *target_uri_string)
+{
+ if (eel_uri_is_trash (target_uri_string) && (context->actions & GDK_ACTION_MOVE)) {
+ /* Only move to Trash */
+ return GDK_ACTION_MOVE;
+ } else {
+ return context->suggested_action;
+ }
+}
+
/* Encode a "x-special/gnome-icon-list" selection.
Along with the URIs of the dragged files, this encodes
the location and size of each icon relative to the cursor.
diff --git a/libnautilus-private/nautilus-dnd.h b/libnautilus-private/nautilus-dnd.h
index d82336c94..ed8821b8d 100644
--- a/libnautilus-private/nautilus-dnd.h
+++ b/libnautilus-private/nautilus-dnd.h
@@ -126,6 +126,8 @@ void nautilus_drag_default_drop_action_for_icons (GdkDrag
const GList *items,
int *action);
GdkDragAction nautilus_drag_default_drop_action_for_netscape_url (GdkDragContext *context);
+GdkDragAction nautilus_drag_default_drop_action_for_uri_list (GdkDragContext *context,
+ const char *target_uri_string);
gboolean nautilus_drag_drag_data_get (GtkWidget *widget,
GdkDragContext *context,
GtkSelectionData *selection_data,
diff --git a/libnautilus-private/nautilus-icon-dnd.c b/libnautilus-private/nautilus-icon-dnd.c
index 46b92b5ec..c5216e4f4 100644
--- a/libnautilus-private/nautilus-icon-dnd.c
+++ b/libnautilus-private/nautilus-icon-dnd.c
@@ -1278,6 +1278,13 @@ nautilus_icon_container_get_drop_action (NautilusIconContainer *container,
action);
g_free (drop_target);
break;
+ case NAUTILUS_ICON_DND_URI_LIST:
+ drop_target = nautilus_icon_container_find_drop_target (container,
+ context, x, y, &icon_hit, FALSE);
+ *action = nautilus_drag_default_drop_action_for_uri_list (context, drop_target);
+
+ g_free (drop_target);
+ break;
/* handle emblems by setting the action if we're over an object */
case NAUTILUS_ICON_DND_KEYWORD:
@@ -1293,7 +1300,6 @@ nautilus_icon_container_get_drop_action (NautilusIconContainer *container,
case NAUTILUS_ICON_DND_COLOR:
case NAUTILUS_ICON_DND_BGIMAGE:
case NAUTILUS_ICON_DND_RESET_BACKGROUND:
- case NAUTILUS_ICON_DND_URI_LIST:
case NAUTILUS_ICON_DND_ROOTWINDOW_DROP:
*action = context->suggested_action;
break;