summaryrefslogtreecommitdiff
path: root/gtk/gtkstylecontext.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-01-07 18:06:59 +0100
committerBenjamin Otte <otte@redhat.com>2015-01-07 18:06:59 +0100
commit29984c5282d1b47345b5b6627f796aa6cb34c752 (patch)
tree119ab98b0558f60f5bbb2b89ead99b3aa378c9e3 /gtk/gtkstylecontext.c
parentbc07a540c7ab25326c7714f6739b8f4745c55a91 (diff)
downloadgtk+-29984c5282d1b47345b5b6627f796aa6cb34c752.tar.gz
stylecontext: Handle theme changes for cached styles
We need to clear the cache manually on full revalidates because _gtk_css_change_for_child() will clear the full revalidation flags. And then gtk_style_context_update_cache() will not do the right thing (which is to clear itself).
Diffstat (limited to 'gtk/gtkstylecontext.c')
-rw-r--r--gtk/gtkstylecontext.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c
index eeb30224cb..4e91e843ee 100644
--- a/gtk/gtkstylecontext.c
+++ b/gtk/gtkstylecontext.c
@@ -2842,7 +2842,7 @@ gtk_style_context_update_cache (GtkStyleContext *context,
GtkCssStyle *parent;
gpointer key, value;
- if (_gtk_bitmask_is_empty (parent_changes))
+ if (change == 0 && _gtk_bitmask_is_empty (parent_changes))
return;
priv = context->priv;
@@ -2951,6 +2951,8 @@ _gtk_style_context_validate (GtkStyleContext *context,
g_object_unref (static_style);
g_object_unref (style);
+
+ gtk_style_context_clear_cache (context);
}
else
{