[Xfce4-commits] <midori:master> Don't load icons for throbber unless rendering

Christian Dywan noreply at xfce.org
Sun Dec 9 14:16:01 CET 2012


Updating branch refs/heads/master
         to 94b733b5dedcb64f759e7d449f06a518a534aac0 (commit)
       from 2b4528771539d4a09dceaa42ac6d445c89fd3505 (commit)

commit 94b733b5dedcb64f759e7d449f06a518a534aac0
Author: Christian Dywan <christian at twotoasts.de>
Date:   Sun Dec 9 14:05:03 2012 +0100

    Don't load icons for throbber unless rendering

 katze/katze-throbber.c |   42 ++++++++++++++++++++++++++++++------------
 1 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/katze/katze-throbber.c b/katze/katze-throbber.c
index 0f9f616..92646ed 100644
--- a/katze/katze-throbber.c
+++ b/katze/katze-throbber.c
@@ -424,10 +424,13 @@ katze_throbber_set_icon_name (KatzeThrobber*  throbber,
 {
     g_return_if_fail (KATZE_IS_THROBBER (throbber));
 
+    if (!g_strcmp0 (throbber->icon_name, icon_name))
+        return;
+
     katze_assign (throbber->icon_name, g_strdup (icon_name));
 
     if (icon_name)
-        icon_theme_changed (throbber);
+        katze_object_assign (throbber->pixbuf, NULL);
 
     g_object_notify (G_OBJECT (throbber), "icon-name");
 }
@@ -521,10 +524,8 @@ katze_throbber_set_static_icon_name (KatzeThrobber*  throbber,
     if (icon_name)
     {
         katze_assign (throbber->static_stock_id, NULL);
+        katze_object_assign (throbber->static_pixbuf, NULL);
 
-        icon_theme_changed (throbber);
-
-        g_object_notify (G_OBJECT (throbber), "static-pixbuf");
         g_object_notify (G_OBJECT (throbber), "static-stock-id");
     }
 
@@ -594,13 +595,10 @@ katze_throbber_set_static_stock_id (KatzeThrobber* throbber,
         g_return_if_fail (gtk_stock_lookup (stock_id, &stock_item));
 
         g_object_notify (G_OBJECT (throbber), "static-icon-name");
-        g_object_notify (G_OBJECT (throbber), "static-pixbuf");
     }
 
     katze_assign (throbber->static_stock_id, g_strdup (stock_id));
-
-    if (stock_id)
-        icon_theme_changed (throbber);
+    katze_object_assign (throbber->static_pixbuf, NULL);
 
     g_object_notify (G_OBJECT (throbber), "static-stock-id");
     g_object_thaw_notify (G_OBJECT (throbber));
@@ -728,8 +726,6 @@ static void
 katze_throbber_realize (GtkWidget* widget)
 {
     (*GTK_WIDGET_CLASS (katze_throbber_parent_class)->realize) (widget);
-
-    icon_theme_changed (KATZE_THROBBER (widget));
 }
 
 static void
@@ -819,23 +815,45 @@ static void
 katze_throbber_style_set (GtkWidget* widget,
                           GtkStyle*  prev_style)
 {
+    KatzeThrobber* throbber = KATZE_THROBBER (widget);
+
     if (GTK_WIDGET_CLASS (katze_throbber_parent_class)->style_set)
         GTK_WIDGET_CLASS (katze_throbber_parent_class)->style_set (widget,
                                                                    prev_style);
 
-    icon_theme_changed (KATZE_THROBBER (widget));
+    if (throbber->pixbuf)
+    {
+        katze_object_assign (throbber->pixbuf, NULL);
+        g_object_notify (G_OBJECT (throbber), "pixbuf");
+    }
+    if (throbber->static_pixbuf)
+    {
+        katze_object_assign (throbber->static_pixbuf, NULL);
+        g_object_notify (G_OBJECT (throbber), "static-pixbuf");
+    }
 }
 
 static void
 katze_throbber_screen_changed (GtkWidget* widget,
                                GdkScreen* prev_screen)
 {
+    KatzeThrobber* throbber = KATZE_THROBBER (widget);
+
     if (GTK_WIDGET_CLASS (katze_throbber_parent_class)->screen_changed)
         GTK_WIDGET_CLASS (katze_throbber_parent_class)->screen_changed (
                                                         widget,
                                                         prev_screen);
 
-    icon_theme_changed (KATZE_THROBBER (widget));
+    if (throbber->pixbuf)
+    {
+        katze_object_assign (throbber->pixbuf, NULL);
+        g_object_notify (G_OBJECT (throbber), "pixbuf");
+    }
+    if (throbber->static_pixbuf)
+    {
+        katze_object_assign (throbber->static_pixbuf, NULL);
+        g_object_notify (G_OBJECT (throbber), "static-pixbuf");
+    }
 }
 
 static void


More information about the Xfce4-commits mailing list