summaryrefslogtreecommitdiff
path: root/gtk/gtkiconhelper.c
diff options
context:
space:
mode:
authorChristian Hergert <christian@hergert.me>2016-04-27 17:45:01 -0700
committerChristian Hergert <christian@hergert.me>2016-04-27 17:45:01 -0700
commit88d02583974659d1d37d825df78c79bee4c95d0e (patch)
treed315b3d5c7238d5f8504c4530232ce6edd1dfb01 /gtk/gtkiconhelper.c
parent055ce9f095fa66d4ea247ec24d8366d5080c9ebc (diff)
downloadgtk+-88d02583974659d1d37d825df78c79bee4c95d0e.tar.gz
iconhelper: check if surface was invalidated
Fetching the style may cause the surface to be invalidated.
Diffstat (limited to 'gtk/gtkiconhelper.c')
-rw-r--r--gtk/gtkiconhelper.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c
index b8737e7aa4..7baccb0ae3 100644
--- a/gtk/gtkiconhelper.c
+++ b/gtk/gtkiconhelper.c
@@ -892,15 +892,21 @@ _gtk_icon_helper_draw (GtkIconHelper *self,
gdouble x,
gdouble y)
{
+ GtkCssStyle *style;
+
gtk_icon_helper_ensure_surface (self);
+ /*
+ * Get the style first as the rendered surface maybe cleared if the style
+ * must be recomputed
+ */
+ style = gtk_css_node_get_style (gtk_css_gadget_get_node (GTK_CSS_GADGET (self)));
+
if (self->priv->rendered_surface != NULL)
- {
- gtk_css_style_render_icon_surface (gtk_css_node_get_style (gtk_css_gadget_get_node (GTK_CSS_GADGET (self))),
- cr,
- self->priv->rendered_surface,
- x, y);
- }
+ gtk_css_style_render_icon_surface (style,
+ cr,
+ self->priv->rendered_surface,
+ x, y);
}
gboolean