[gtk+] stylecontext: Make queue_invalidate() always work



commit f51c9d4154ba1ce4f20f7c4b7f705fe2756cb8ab
Author: Benjamin Otte <otte redhat com>
Date:   Tue May 8 01:35:00 2012 +0200

    stylecontext: Make queue_invalidate() always work
    
    Handle both the case where a widget is set and also the case where a
    widget path is set.

 gtk/gtkstylecontext.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)
---
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index 1ed5eb4..02293b4 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -663,12 +663,7 @@ static void
 gtk_style_context_cascade_changed (GtkStyleCascade *cascade,
                                    GtkStyleContext *context)
 {
-  GtkStyleContextPrivate *priv = context->priv;
-
-  if (priv->widget)
-    _gtk_style_context_queue_invalidate (context, GTK_CSS_CHANGE_SOURCE);
-  else
-    gtk_style_context_invalidate (context);
+  _gtk_style_context_queue_invalidate (context, GTK_CSS_CHANGE_SOURCE);
 }
 
 static void
@@ -2556,8 +2551,6 @@ gtk_style_context_set_screen (GtkStyleContext *context,
   priv->screen = screen;
 
   g_object_notify (G_OBJECT (context), "screen");
-
-  gtk_style_context_invalidate (context);
 }
 
 /**
@@ -3162,11 +3155,15 @@ _gtk_style_context_queue_invalidate (GtkStyleContext *context,
 
   priv = context->priv;
 
-  if (priv->widget == NULL && priv->widget_path == NULL)
-    return;
-
-  priv->pending_changes |= change;
-  gtk_style_context_set_invalid (context, TRUE);
+  if (priv->widget != NULL)
+    {
+      priv->pending_changes |= change;
+      gtk_style_context_set_invalid (context, TRUE);
+    }
+  else if (priv->widget_path == NULL)
+    {
+      gtk_style_context_invalidate (context);
+    }
 }
 
 /**



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