summaryrefslogtreecommitdiff
path: root/gtk/gtkcssnode.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-01-15 20:27:12 -0500
committerMatthias Clasen <mclasen@redhat.com>2020-01-16 07:24:04 -0500
commitd14bace6d0d9505b28c153ab629ca455d97a9fd2 (patch)
treebc039ca6ac4a9c07451b9fac048d43b17a2ee73a /gtk/gtkcssnode.c
parent77f71448d543d39954d776d3b93322d376f34617 (diff)
downloadgtk+-matthiasc/css-change.tar.gz
css: Track selected state separatelymatthiasc/css-change
Like the previous change, this reduces the number of css nodes reacting to parent-state changes. The remaining parent-state cases here are due to :link. Before (numbers from widget-factory with Adwaita): 2247 nodes class 612 name 2246 id 2 first-child 148 last-child 156 state 2245 hover 562 disabled 859 backdrop 1080 sibling-name 63 sibling-disabled 51 parent-class 586 parent-name 788 parent-id 2 parent-first-child 78 parent-last-child 78 parent-state 236 parent-hover 5 parent-disabled 91 parent-backdrop 4 After: 2247 nodes class 612 name 2246 id 2 first-child 148 last-child 156 state 2245 hover 562 disabled 859 backdrop 1080 selected 579 sibling-name 63 sibling-disabled 51 parent-class 586 parent-name 788 parent-id 2 parent-first-child 78 parent-last-child 78 parent-state 115 parent-hover 5 parent-disabled 91 parent-backdrop 4 parent-selected 144
Diffstat (limited to 'gtk/gtkcssnode.c')
-rw-r--r--gtk/gtkcssnode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index 4f45e9a1d6..a7eb75d7d9 100644
--- a/gtk/gtkcssnode.c
+++ b/gtk/gtkcssnode.c
@@ -1160,6 +1160,8 @@ gtk_css_node_set_state (GtkCssNode *cssnode,
change |= GTK_CSS_CHANGE_STATE;
if (states & ~GTK_STATE_FLAG_BACKDROP)
change |= GTK_CSS_CHANGE_BACKDROP;
+ if (states & ~GTK_STATE_FLAG_SELECTED)
+ change |= GTK_CSS_CHANGE_SELECTED;
gtk_css_node_invalidate (cssnode, change);
g_object_notify_by_pspec (G_OBJECT (cssnode), cssnode_properties[PROP_STATE]);