diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-01-15 20:27:12 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-01-16 07:24:04 -0500 |
commit | d14bace6d0d9505b28c153ab629ca455d97a9fd2 (patch) | |
tree | bc039ca6ac4a9c07451b9fac048d43b17a2ee73a /gtk/gtkcssnode.c | |
parent | 77f71448d543d39954d776d3b93322d376f34617 (diff) | |
download | gtk+-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.c | 2 |
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]); |