cssnode: Clear cache if reusing style

When we reuse styles that didn't change across changes to the source
CSS, make sure we clear the caches. Otherwise child nodes will pick up
styles from the old source CSS.
This commit is contained in:
Benjamin Otte 2015-12-15 01:07:03 +01:00
parent 220d2620e4
commit f6606c4f6f

View File

@ -1034,6 +1034,12 @@ gtk_css_node_ensure_style (GtkCssNode *cssnode,
style_changed = gtk_css_node_set_style (cssnode, new_style);
g_object_unref (new_style);
if (!style_changed && (cssnode->pending_changes & GTK_CSS_CHANGE_SOURCE))
{
/* clear the global cache if we reuse the same style after the CSS changed */
g_object_set_qdata (G_OBJECT (cssnode->style), quark_global_cache, NULL);
}
}
else
{