diff options
author | Benjamin Otte <otte@redhat.com> | 2015-01-07 18:06:59 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-01-07 18:06:59 +0100 |
commit | 29984c5282d1b47345b5b6627f796aa6cb34c752 (patch) | |
tree | 119ab98b0558f60f5bbb2b89ead99b3aa378c9e3 /gtk/gtkstylecontext.c | |
parent | bc07a540c7ab25326c7714f6739b8f4745c55a91 (diff) | |
download | gtk+-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.c | 4 |
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 { |