[gtk+] iconhelper: check if surface was invalidated



commit 88d02583974659d1d37d825df78c79bee4c95d0e
Author: Christian Hergert <christian hergert me>
Date:   Wed Apr 27 17:45:01 2016 -0700

    iconhelper: check if surface was invalidated
    
    Fetching the style may cause the surface to be invalidated.

 gtk/gtkiconhelper.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c
index b8737e7..7baccb0 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]