diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Nautilus_shell.server.in | 4 | ||||
-rw-r--r-- | src/nautilus-navigation-window.c | 16 | ||||
-rw-r--r-- | src/nautilus-object-window.c | 16 | ||||
-rw-r--r-- | src/nautilus-spatial-window.c | 16 | ||||
-rw-r--r-- | src/nautilus-window-manage-views.c | 46 | ||||
-rw-r--r-- | src/nautilus-window-private.h | 1 | ||||
-rw-r--r-- | src/nautilus-window.c | 16 |
7 files changed, 108 insertions, 7 deletions
diff --git a/src/Nautilus_shell.server.in b/src/Nautilus_shell.server.in index 80397dc0d..48a4e930b 100644 --- a/src/Nautilus_shell.server.in +++ b/src/Nautilus_shell.server.in @@ -27,7 +27,7 @@ <item value="trash"/> </oaf_attribute> <oaf_attribute name="nautilus:view_as_name" type="string" _value="Icons"/> - <oaf_attribute name="nautilus:view_as_label" type="string" _value="View as Icons"/> + <oaf_attribute name="nautilus:view_as_label" type="string" _value="View as _Icons"/> <oaf_attribute name="nautilus:viewer_label" type="string" _value="Icons Viewer"/> </oaf_server> @@ -62,7 +62,7 @@ <item value="trash"/> </oaf_attribute> <oaf_attribute name="nautilus:view_as_name" type="string" _value="List"/> - <oaf_attribute name="nautilus:view_as_label" type="string" _value="View as List"/> + <oaf_attribute name="nautilus:view_as_label" type="string" _value="View as _List"/> <oaf_attribute name="nautilus:viewer_label" type="string" _value="List Viewer"/> </oaf_server> diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index af87078b6..b0177d68e 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-window.c @@ -155,6 +155,14 @@ set_up_default_icon_list (void) } static void +icons_changed_callback (GObject *factory, NautilusWindow *window) +{ + g_return_if_fail (NAUTILUS_IS_WINDOW (window)); + + nautilus_window_update_icon (window); +} + +static void nautilus_window_instance_init (NautilusWindow *window) { window->details = g_new0 (NautilusWindowDetails, 1); @@ -179,6 +187,12 @@ nautilus_window_instance_init (NautilusWindow *window) nautilus_window_get_ui_container (window), NULL); + /* Register IconFactory callback to update the window border icon + * when the icon-theme is changed. + */ + g_signal_connect (nautilus_icon_factory_get (), "icons_changed", + G_CALLBACK (icons_changed_callback), window); + /* Create a separate component so when we remove the status * we don't loose the status bar */ @@ -1124,7 +1138,7 @@ create_view_as_menu_item (NautilusWindow *window, char *menu_label; menu_label = g_strdup (_(identifier->view_as_label)); - menu_item = gtk_menu_item_new_with_label (menu_label); + menu_item = gtk_menu_item_new_with_mnemonic (menu_label); g_free (menu_label); g_signal_connect_object (menu_item, "activate", diff --git a/src/nautilus-object-window.c b/src/nautilus-object-window.c index af87078b6..b0177d68e 100644 --- a/src/nautilus-object-window.c +++ b/src/nautilus-object-window.c @@ -155,6 +155,14 @@ set_up_default_icon_list (void) } static void +icons_changed_callback (GObject *factory, NautilusWindow *window) +{ + g_return_if_fail (NAUTILUS_IS_WINDOW (window)); + + nautilus_window_update_icon (window); +} + +static void nautilus_window_instance_init (NautilusWindow *window) { window->details = g_new0 (NautilusWindowDetails, 1); @@ -179,6 +187,12 @@ nautilus_window_instance_init (NautilusWindow *window) nautilus_window_get_ui_container (window), NULL); + /* Register IconFactory callback to update the window border icon + * when the icon-theme is changed. + */ + g_signal_connect (nautilus_icon_factory_get (), "icons_changed", + G_CALLBACK (icons_changed_callback), window); + /* Create a separate component so when we remove the status * we don't loose the status bar */ @@ -1124,7 +1138,7 @@ create_view_as_menu_item (NautilusWindow *window, char *menu_label; menu_label = g_strdup (_(identifier->view_as_label)); - menu_item = gtk_menu_item_new_with_label (menu_label); + menu_item = gtk_menu_item_new_with_mnemonic (menu_label); g_free (menu_label); g_signal_connect_object (menu_item, "activate", diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c index af87078b6..b0177d68e 100644 --- a/src/nautilus-spatial-window.c +++ b/src/nautilus-spatial-window.c @@ -155,6 +155,14 @@ set_up_default_icon_list (void) } static void +icons_changed_callback (GObject *factory, NautilusWindow *window) +{ + g_return_if_fail (NAUTILUS_IS_WINDOW (window)); + + nautilus_window_update_icon (window); +} + +static void nautilus_window_instance_init (NautilusWindow *window) { window->details = g_new0 (NautilusWindowDetails, 1); @@ -179,6 +187,12 @@ nautilus_window_instance_init (NautilusWindow *window) nautilus_window_get_ui_container (window), NULL); + /* Register IconFactory callback to update the window border icon + * when the icon-theme is changed. + */ + g_signal_connect (nautilus_icon_factory_get (), "icons_changed", + G_CALLBACK (icons_changed_callback), window); + /* Create a separate component so when we remove the status * we don't loose the status bar */ @@ -1124,7 +1138,7 @@ create_view_as_menu_item (NautilusWindow *window, char *menu_label; menu_label = g_strdup (_(identifier->view_as_label)); - menu_item = gtk_menu_item_new_with_label (menu_label); + menu_item = gtk_menu_item_new_with_mnemonic (menu_label); g_free (menu_label); g_signal_connect_object (menu_item, "activate", diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c index 923bfbdcb..34562b9e3 100644 --- a/src/nautilus-window-manage-views.c +++ b/src/nautilus-window-manage-views.c @@ -185,7 +185,11 @@ compute_title (NautilusWindow *window) char *title; title = NULL; - if (window->new_content_view != NULL) { + + if (NAUTILUS_IS_DESKTOP_WINDOW (window)) { + /* Special Desktop window title (displayed in the Ctrl-Alt-Tab window) */ + title = g_strdup(_("Desktop")); + } else if (window->new_content_view != NULL) { title = nautilus_view_frame_get_title (window->new_content_view); } else if (window->content_view != NULL) { title = nautilus_view_frame_get_title (window->content_view); @@ -258,6 +262,42 @@ update_title (NautilusWindow *window) g_free (title); } +/* nautilus_window_update_icon: + * + * Update the non-NautilusViewFrame objects that use the location's user-displayable + * icon in some way. Called when the location or icon-theme has changed. + * @window: The NautilusWindow in question. + * + */ +void +nautilus_window_update_icon (NautilusWindow *window) +{ + char *path; + GdkPixbuf *pixbuf; + + pixbuf = NULL; + + /* Desktop window special icon */ + if (NAUTILUS_IS_DESKTOP_WINDOW (window)) { + path = nautilus_pixmap_file ("nautilus-desktop.png"); + + if (path != NULL) { + pixbuf = gdk_pixbuf_new_from_file (path, NULL); + + g_free (path); + } + } else { + pixbuf = nautilus_icon_factory_get_pixbuf_for_file (window->details->viewed_file, + "open", + NAUTILUS_ICON_SIZE_STANDARD); + } + + if (pixbuf != NULL) { + gtk_window_set_icon (GTK_WINDOW (window), pixbuf); + g_object_unref (pixbuf); + } +} + /* set_displayed_location: * * Update the non-NautilusViewFrame objects that use the location's user-displayable @@ -290,6 +330,7 @@ set_displayed_location (NautilusWindow *window, const char *location) } update_title (window); + nautilus_window_update_icon (window); } static void @@ -501,6 +542,7 @@ viewed_file_changed_callback (NautilusFile *file, } update_title (window); + nautilus_window_update_icon (window); } } @@ -652,6 +694,7 @@ location_has_really_changed (NautilusWindow *window) free_location_change (window); update_title (window); + nautilus_window_update_icon (window); /* The whole window has been finished. Now show it, unless * we're still waiting for the saved positions from the @@ -1964,6 +2007,7 @@ title_changed_callback (NautilusViewFrame *view, g_assert (NAUTILUS_IS_WINDOW (window)); update_title (window); + nautilus_window_update_icon (window); } static void diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h index 5e1803c62..7bf03ca92 100644 --- a/src/nautilus-window-private.h +++ b/src/nautilus-window-private.h @@ -172,5 +172,6 @@ void nautilus_window_add_current_location_to_history_list (Nautil void nautilus_remove_from_history_list_no_notify (const char *location); GList * nautilus_get_history_list (void); void nautilus_window_bookmarks_preference_changed_callback (gpointer user_data); +void nautilus_window_update_icon (NautilusWindow *window); #endif /* NAUTILUS_WINDOW_PRIVATE_H */ diff --git a/src/nautilus-window.c b/src/nautilus-window.c index af87078b6..b0177d68e 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -155,6 +155,14 @@ set_up_default_icon_list (void) } static void +icons_changed_callback (GObject *factory, NautilusWindow *window) +{ + g_return_if_fail (NAUTILUS_IS_WINDOW (window)); + + nautilus_window_update_icon (window); +} + +static void nautilus_window_instance_init (NautilusWindow *window) { window->details = g_new0 (NautilusWindowDetails, 1); @@ -179,6 +187,12 @@ nautilus_window_instance_init (NautilusWindow *window) nautilus_window_get_ui_container (window), NULL); + /* Register IconFactory callback to update the window border icon + * when the icon-theme is changed. + */ + g_signal_connect (nautilus_icon_factory_get (), "icons_changed", + G_CALLBACK (icons_changed_callback), window); + /* Create a separate component so when we remove the status * we don't loose the status bar */ @@ -1124,7 +1138,7 @@ create_view_as_menu_item (NautilusWindow *window, char *menu_label; menu_label = g_strdup (_(identifier->view_as_label)); - menu_item = gtk_menu_item_new_with_label (menu_label); + menu_item = gtk_menu_item_new_with_mnemonic (menu_label); g_free (menu_label); g_signal_connect_object (menu_item, "activate", |