diff options
author | bptato <nincsnevem662@gmail.com> | 2022-01-24 23:53:46 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-01-24 23:53:46 +0100 |
commit | 16fa06be2a19780759195251c4a1f242ee0f8d10 (patch) | |
tree | 30a02abfaa50b79cd2e1c75721bf182580e1ca37 | |
parent | 2a94a2709e4a6784a1269c7afe77f7125c900d1a (diff) | |
download | chawan-16fa06be2a19780759195251c4a1f242ee0f8d10.tar.gz |
Fix author style sheet assignment
-rw-r--r-- | src/css/cascade.nim | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/css/cascade.nim b/src/css/cascade.nim index c7fd2fd5..fe3a08fd 100644 --- a/src/css/cascade.nim +++ b/src/css/cascade.nim @@ -165,10 +165,18 @@ proc applyRules(document: Document, ua, user: CSSStylesheet) = stack.add(document.root) + var lastlen = 0 + while stack.len > 0: let elem = stack.pop() + # Add a nil after the last element, so we can remove the stylesheets + if elem == nil: + embedded_rules.setLen(embedded_rules.len - lastlen) + continue + embedded_rules.add(elem.sheets) + lastlen = elem.sheets.len if not elem.cssapplied: let prev = elem.css @@ -191,11 +199,10 @@ proc applyRules(document: Document, ua, user: CSSStylesheet) = elem.checkRendered(prev, ppseudo) + stack.add(nil) for i in countdown(elem.children.high, 0): stack.add(elem.children[i]) - embedded_rules.setLen(embedded_rules.len - elem.sheets.len) - proc applyStylesheets*(document: Document, uass, userss: CSSStylesheet) = let uass = uass.applyMediaQuery() let userss = userss.applyMediaQuery() |