summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2009-01-13 09:08:08 +0000
committerAlexander Larsson <alexl@src.gnome.org>2009-01-13 09:08:08 +0000
commitafadb31464943e31edfa291f88e896bfb2653dd4 (patch)
treee699fda4dff0662516d0cd8f8beed00e42acf7aa /src
parente89e44c7ad921686e8fb4d62c7ee4c7ccaba0a82 (diff)
downloadnautilus-afadb31464943e31edfa291f88e896bfb2653dd4.tar.gz
Only set window icon if it really changed.
2009-01-13 Alexander Larsson <alexl@redhat.com> * src/nautilus-window-slot.c (nautilus_window_slot_update_icon): Only set window icon if it really changed. svn path=/trunk/; revision=14844
Diffstat (limited to 'src')
-rw-r--r--src/nautilus-window-slot.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c
index 253872aa8..569921a54 100644
--- a/src/nautilus-window-slot.c
+++ b/src/nautilus-window-slot.c
@@ -346,7 +346,13 @@ nautilus_window_slot_update_icon (NautilusWindowSlot *slot)
if (info) {
icon_name = nautilus_icon_info_get_used_name (info);
if (icon_name != NULL) {
- gtk_window_set_icon_name (GTK_WINDOW (window), icon_name);
+ /* Gtk+ doesn't short circuit this (yet), so avoid lots of work
+ * if we're setting to the same icon. This happens a lot e.g. when
+ * the trash directory changes due to the file count changing.
+ */
+ if (g_strcmp0 (icon_name, gtk_window_get_icon_name (GTK_WINDOW (window))) != 0) {
+ gtk_window_set_icon_name (GTK_WINDOW (window), icon_name);
+ }
} else {
pixbuf = nautilus_icon_info_get_pixbuf_nodefault (info);