From a5805999a1cd3fc93eb92930e47a854d768be408 Mon Sep 17 00:00:00 2001 From: Dave Camp Date: Fri, 9 Apr 2004 21:18:45 +0000 Subject: By default set the background per-directory in spatial mode. Take out 004-04-09 Dave Camp * 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. --- ChangeLog | 18 ++++++++++++++ .../nautilus-directory-background.c | 29 ++++++++++++---------- .../nautilus-directory-background.h | 5 ++-- libnautilus-private/nautilus-dnd.c | 4 +-- libnautilus-private/nautilus-dnd.h | 3 ++- libnautilus-private/nautilus-icon-dnd.c | 2 +- src/file-manager/fm-icon-view.c | 13 +++++++++- src/file-manager/fm-list-view.c | 3 --- 8 files changed, 53 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3171fc8ca..bec44d98d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2004-04-09 Dave Camp + + * 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 * src/nautilus-window-manage-views.c: (new_window_show_callback), 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 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); -- cgit v1.2.1