From 91b62457595d6ae81070cb585a54fd5ebff97b18 Mon Sep 17 00:00:00 2001 From: Nick Schermer Date: Fri, 26 Feb 2010 14:08:31 +0100 Subject: [PATCH] Update XfcePanelImage on theme changes. --- libxfce4panel/xfce-panel-image.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libxfce4panel/xfce-panel-image.c b/libxfce4panel/xfce-panel-image.c index 44c87168..de996ae9 100644 --- a/libxfce4panel/xfce-panel-image.c +++ b/libxfce4panel/xfce-panel-image.c @@ -344,8 +344,6 @@ xfce_panel_image_size_allocate (GtkWidget *widget, } else { - screen = gtk_widget_get_screen (widget); - size = MIN (priv->width, priv->height); if (G_UNLIKELY (priv->force_icon_sizes && size < 32)) { @@ -360,6 +358,7 @@ xfce_panel_image_size_allocate (GtkWidget *widget, } /* get a pixbuf from the icon name */ + screen = gtk_widget_get_screen (widget); pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_for_screen (screen), priv->source, size, 0, NULL); @@ -433,6 +432,15 @@ xfce_panel_image_style_set (GtkWidget *widget, if (priv->size > 0) gtk_widget_queue_resize (widget); } + + /* update the icon if we have an icon-name source */ + if (previous_style != NULL && priv->source != NULL + && !g_path_is_absolute (priv->source)) + { + /* unset the size to force an update */ + priv->width = priv->height = -1; + gtk_widget_queue_resize (widget); + } }