css: Track disabled state separately
authorMatthias Clasen <mclasen@redhat.com>
Thu, 16 Jan 2020 00:19:38 +0000 (19:19 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 16 Jan 2020 16:23:25 +0000 (11:23 -0500)
commit64848aebf48793544c81e825959985783825b914
tree8e3901888afb2421e56ad772cd7c504d79571df7
parentfcceac6d118354ac3e73cd80c4dab8d026e49721
css: Track disabled state separately

Significantly reduces the number of nodes that react to
parent-state changes.

Before (numbers from widget-factory with Adwaita):
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2247
hover 2247
sibling-name 63
sibling-state 51
parent-class 586
parent-name 788
parent-id 2
parent-first-child 78
parent-last-child 78
parent-state 2226
parent-hover 5

After:
2247 nodes
class 612
name 2246
id 2
first-child 148
last-child 156
state 2247
hover 562
disabled 859
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
gtk/gtkcssmatcher.c
gtk/gtkcssnode.c
gtk/gtkcssselector.c
gtk/gtkcsstypes.c
gtk/gtkcsstypesprivate.h