summaryrefslogtreecommitdiff
path: root/gtk/gtkstylecontext.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-02-10 23:49:15 +0100
committerBenjamin Otte <otte@redhat.com>2015-02-10 23:49:40 +0100
commitb763bb0594ec98ef96d2d9987ce622e2de9452e0 (patch)
tree6d204859232f86612080674477e74e9918c5fce9 /gtk/gtkstylecontext.c
parent9e96461aa59cdb5454a48200b8b80caaf04c4147 (diff)
downloadgtk+-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.c23
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);