summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Camp <dave@ximian.com>2004-04-09 21:18:45 +0000
committerDave Camp <campd@src.gnome.org>2004-04-09 21:18:45 +0000
commita5805999a1cd3fc93eb92930e47a854d768be408 (patch)
tree601ed40674d14634321cdfed100f3603dad08ea8
parent62236eb5edd732a2f764bde7dc9db94621fd90d1 (diff)
downloadnautilus-a5805999a1cd3fc93eb92930e47a854d768be408.tar.gz
By default set the background per-directory in spatial mode. Take out
004-04-09 Dave Camp <dave@ximian.com> * libnautilus-private/nautilus-directory-background.c: (nautilus_connect_desktop_background_to_file_metadata), (background_changed_callback), (nautilus_connect_background_to_file_metadata): * libnautilus-private/nautilus-directory-background.h: * libnautilus-private/nautilus-dnd.c: (nautilus_drag_drop_background_ask): * libnautilus-private/nautilus-dnd.h: * libnautilus-private/nautilus-icon-dnd.c: (get_background_drag_action): * src/file-manager/fm-icon-view.c: (fm_icon_view_begin_loading): By default set the background per-directory in spatial mode. * src/file-manager/fm-list-view.c: (fm_list_view_begin_loading): Take out background metadata stuff, we don't use an eelbackground here.
-rw-r--r--ChangeLog18
-rw-r--r--libnautilus-private/nautilus-directory-background.c29
-rw-r--r--libnautilus-private/nautilus-directory-background.h5
-rw-r--r--libnautilus-private/nautilus-dnd.c4
-rw-r--r--libnautilus-private/nautilus-dnd.h3
-rw-r--r--libnautilus-private/nautilus-icon-dnd.c2
-rw-r--r--src/file-manager/fm-icon-view.c13
-rw-r--r--src/file-manager/fm-list-view.c3
8 files changed, 53 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index 3171fc8ca..bec44d98d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
2004-04-09 Dave Camp <dave@ximian.com>
+ * libnautilus-private/nautilus-directory-background.c:
+ (nautilus_connect_desktop_background_to_file_metadata),
+ (background_changed_callback),
+ (nautilus_connect_background_to_file_metadata):
+ * libnautilus-private/nautilus-directory-background.h:
+ * libnautilus-private/nautilus-dnd.c:
+ (nautilus_drag_drop_background_ask):
+ * libnautilus-private/nautilus-dnd.h:
+ * libnautilus-private/nautilus-icon-dnd.c:
+ (get_background_drag_action):
+ * src/file-manager/fm-icon-view.c: (fm_icon_view_begin_loading):
+ By default set the background per-directory in spatial mode.
+ * src/file-manager/fm-list-view.c: (fm_list_view_begin_loading):
+ Take out background metadata stuff, we don't use an eelbackground
+ here.
+
+2004-04-09 Dave Camp <dave@ximian.com>
+
* src/nautilus-window-manage-views.c: (new_window_show_callback),
(open_location): Use nautilus_window_close() to close the
window, fixes #139072
diff --git a/libnautilus-private/nautilus-directory-background.c b/libnautilus-private/nautilus-directory-background.c
index 75858fd9d..75d7ddf56 100644
--- a/libnautilus-private/nautilus-directory-background.c
+++ b/libnautilus-private/nautilus-directory-background.c
@@ -127,7 +127,7 @@ nautilus_connect_desktop_background_to_file_metadata (NautilusIconContainer *ico
* waste, but won't hurt, so I don't think it's worth refactoring the fn
* at this point.
*/
- nautilus_connect_background_to_file_metadata (GTK_WIDGET (icon_container), file);
+ nautilus_connect_background_to_file_metadata (GTK_WIDGET (icon_container), file, NAUTILUS_DND_ACTION_SET_AS_FOLDER_BACKGROUND);
if (GTK_WIDGET_REALIZED (icon_container)) {
desktop_background_realized (icon_container, GINT_TO_POINTER (FALSE));
@@ -611,7 +611,17 @@ background_changed_callback (EelBackground *background,
g_signal_handlers_block_by_func (
file, G_CALLBACK (saved_settings_changed_callback), background);
- if (action != NAUTILUS_DND_ACTION_SET_AS_BACKGROUND) {
+ if (action != NAUTILUS_DND_ACTION_SET_AS_FOLDER_BACKGROUND && action != NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND) {
+ GdkDragAction default_drag_action;
+
+ default_drag_action = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (background), "default_drag_action"));
+
+
+ action = default_drag_action;
+ g_print ("checking action, default_drag_action is %d\n", action);
+ }
+
+ if (action == NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND) {
nautilus_file_set_metadata (file,
NAUTILUS_METADATA_KEY_LOCATION_BACKGROUND_COLOR,
NULL,
@@ -839,7 +849,8 @@ background_destroyed_callback (EelBackground *background,
/* key routine that hooks up a background and location */
void
nautilus_connect_background_to_file_metadata (GtkWidget *widget,
- NautilusFile *file)
+ NautilusFile *file,
+ GdkDragAction default_drag_action)
{
EelBackground *background;
gpointer old_file;
@@ -880,6 +891,8 @@ nautilus_connect_background_to_file_metadata (GtkWidget *widget,
g_object_set_data_full (G_OBJECT (background), "eel_background_file",
file, (GDestroyNotify) nautilus_file_unref);
+ g_object_set_data (G_OBJECT (background), "default_drag_action", GINT_TO_POINTER (default_drag_action));
+
/* Connect new signal handlers. */
if (file != NULL) {
g_signal_connect_object (background, "settings_changed",
@@ -910,13 +923,3 @@ nautilus_connect_background_to_file_metadata (GtkWidget *widget,
/* Update the background based on the file metadata. */
initialize_background_from_settings (file, background);
}
-
-void
-nautilus_connect_background_to_file_metadata_by_uri (GtkWidget *widget,
- const char *uri)
-{
- NautilusFile *file;
- file = nautilus_file_get (uri);
- nautilus_connect_background_to_file_metadata (widget, file);
- nautilus_file_unref (file);
-}
diff --git a/libnautilus-private/nautilus-directory-background.h b/libnautilus-private/nautilus-directory-background.h
index e318aed4f..97823ec8a 100644
--- a/libnautilus-private/nautilus-directory-background.h
+++ b/libnautilus-private/nautilus-directory-background.h
@@ -29,9 +29,8 @@
#include <libnautilus-private/nautilus-icon-container.h>
void nautilus_connect_background_to_file_metadata (GtkWidget *widget,
- NautilusFile *file);
+ NautilusFile *file,
+ GdkDragAction default_drag_action);
void nautilus_connect_desktop_background_to_file_metadata (NautilusIconContainer *icon_container,
NautilusFile *file);
-void nautilus_connect_background_to_file_metadata_by_uri (GtkWidget *widget,
- const char *uri);
gboolean nautilus_file_background_is_set (EelBackground *background);
diff --git a/libnautilus-private/nautilus-dnd.c b/libnautilus-private/nautilus-dnd.c
index b80fc94f9..a60721758 100644
--- a/libnautilus-private/nautilus-dnd.c
+++ b/libnautilus-private/nautilus-dnd.c
@@ -683,8 +683,8 @@ nautilus_drag_drop_background_ask (GtkWidget *widget,
&damd);
append_drop_action_menu_item (menu, _("Set as background for _this folder"),
- NAUTILUS_DND_ACTION_SET_AS_BACKGROUND,
- (actions & NAUTILUS_DND_ACTION_SET_AS_BACKGROUND) != 0,
+ NAUTILUS_DND_ACTION_SET_AS_FOLDER_BACKGROUND,
+ (actions & NAUTILUS_DND_ACTION_SET_AS_FOLDER_BACKGROUND) != 0,
&damd);
menu_item = gtk_separator_menu_item_new ();
diff --git a/libnautilus-private/nautilus-dnd.h b/libnautilus-private/nautilus-dnd.h
index 53fab627e..366558030 100644
--- a/libnautilus-private/nautilus-dnd.h
+++ b/libnautilus-private/nautilus-dnd.h
@@ -64,7 +64,8 @@ typedef enum {
typedef enum {
NAUTILUS_DND_ACTION_FIRST = GDK_ACTION_ASK << 1,
NAUTILUS_DND_ACTION_SET_AS_BACKGROUND = NAUTILUS_DND_ACTION_FIRST << 0,
- NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND = NAUTILUS_DND_ACTION_FIRST << 1
+ NAUTILUS_DND_ACTION_SET_AS_FOLDER_BACKGROUND = NAUTILUS_DND_ACTION_FIRST << 1,
+ NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND = NAUTILUS_DND_ACTION_FIRST << 2
} NautilusDndAction;
/* drag&drop-related information. */
diff --git a/libnautilus-private/nautilus-icon-dnd.c b/libnautilus-private/nautilus-icon-dnd.c
index ccccaf87c..88f99616d 100644
--- a/libnautilus-private/nautilus-icon-dnd.c
+++ b/libnautilus-private/nautilus-icon-dnd.c
@@ -533,7 +533,7 @@ get_background_drag_action (NautilusIconContainer *container,
GdkDragAction valid_actions;
if (action == GDK_ACTION_ASK) {
- valid_actions = NAUTILUS_DND_ACTION_SET_AS_BACKGROUND;
+ valid_actions = NAUTILUS_DND_ACTION_SET_AS_FOLDER_BACKGROUND;
if (g_object_get_data (G_OBJECT (eel_get_widget_background (GTK_WIDGET (container))), "is_desktop") == 0) {
valid_actions |= NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND;
}
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index 0748dc8d6..ab79d165d 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -1088,7 +1088,18 @@ fm_icon_view_begin_loading (FMDirectoryView *view)
if (FM_IS_DESKTOP_ICON_VIEW (view)) {
nautilus_connect_desktop_background_to_file_metadata (NAUTILUS_ICON_CONTAINER (icon_container), file);
} else {
- nautilus_connect_background_to_file_metadata (icon_container, file);
+ GdkDragAction default_action;
+
+ if (nautilus_view_get_window_type (fm_directory_view_get_nautilus_view (view)) == Nautilus_WINDOW_NAVIGATION) {
+ default_action = NAUTILUS_DND_ACTION_SET_AS_GLOBAL_BACKGROUND;
+ } else {
+ default_action = NAUTILUS_DND_ACTION_SET_AS_FOLDER_BACKGROUND;
+ }
+
+ nautilus_connect_background_to_file_metadata
+ (icon_container,
+ file,
+ default_action);
}
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 312a5931b..e9fa866d0 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -1258,9 +1258,6 @@ fm_list_view_begin_loading (FMDirectoryView *view)
list_view = FM_LIST_VIEW (view);
- nautilus_connect_background_to_file_metadata (GTK_WIDGET (list_view->details->tree_view),
- fm_directory_view_get_directory_as_file (view));
-
set_sort_order_from_metadata_and_preferences (list_view);
set_zoom_level_from_metadata_and_preferences (list_view);
set_visible_columns_from_metadata_and_preferences (list_view);