diff options
author | Benjamin Otte <otte@redhat.com> | 2015-02-10 23:49:15 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-02-10 23:49:40 +0100 |
commit | b763bb0594ec98ef96d2d9987ce622e2de9452e0 (patch) | |
tree | 6d204859232f86612080674477e74e9918c5fce9 /gtk/gtkstylecontext.c | |
parent | 9e96461aa59cdb5454a48200b8b80caaf04c4147 (diff) | |
download | gtk+-b763bb0594ec98ef96d2d9987ce622e2de9452e0.tar.gz |
stylecontext: Don't use cache when unsaved
Fixes image-load-from-file reftest
Diffstat (limited to 'gtk/gtkstylecontext.c')
-rw-r--r-- | gtk/gtkstylecontext.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index a1d15331aa..17e0c9b094 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -883,17 +883,24 @@ gtk_style_context_lookup_style (GtkStyleContext *context) if (cssnode->values) return cssnode->values; - values = g_hash_table_lookup (priv->style_values, cssnode->decl); - if (values) + if (!gtk_style_context_is_saved (context)) { - gtk_css_node_set_values (cssnode, values); - return values; + values = build_properties (context, cssnode->decl, TRUE, gtk_css_node_get_parent_style (context, cssnode)); } + else + { + values = g_hash_table_lookup (priv->style_values, cssnode->decl); + if (values) + { + gtk_css_node_set_values (cssnode, values); + return values; + } - values = build_properties (context, cssnode->decl, FALSE, gtk_css_node_get_parent_style (context, cssnode)); - g_hash_table_insert (priv->style_values, - gtk_css_node_declaration_ref (cssnode->decl), - g_object_ref (values)); + values = build_properties (context, cssnode->decl, FALSE, gtk_css_node_get_parent_style (context, cssnode)); + g_hash_table_insert (priv->style_values, + gtk_css_node_declaration_ref (cssnode->decl), + g_object_ref (values)); + } gtk_css_node_set_values (cssnode, values); g_object_unref (values); |