[gtk+] cssnode: Clear cache if reusing style
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] cssnode: Clear cache if reusing style
- Date: Tue, 15 Dec 2015 00:16:04 +0000 (UTC)
commit f6606c4f6f7fc1b078978caf7e35cf1c8e69e6e7
Author: Benjamin Otte <otte redhat com>
Date: Tue Dec 15 01:07:03 2015 +0100
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.
gtk/gtkcssnode.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index a1bbe77..0772369 100644
--- a/gtk/gtkcssnode.c
+++ b/gtk/gtkcssnode.c
@@ -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
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]