summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Nautilus_shell.server.in4
-rw-r--r--src/nautilus-navigation-window.c16
-rw-r--r--src/nautilus-object-window.c16
-rw-r--r--src/nautilus-spatial-window.c16
-rw-r--r--src/nautilus-window-manage-views.c46
-rw-r--r--src/nautilus-window-private.h1
-rw-r--r--src/nautilus-window.c16
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",