diff options
author | bptato <nincsnevem662@gmail.com> | 2022-01-23 11:20:27 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-01-23 11:20:27 +0100 |
commit | eeebe788fef445e6fb7f92596a47238205e33a10 (patch) | |
tree | 87a06fe31cb3bc4259d1bcb4e1669c8819331229 /src/css | |
parent | 8e1ccfe2f2809b5bbae2d311e1b30f9ffe1833f6 (diff) | |
download | chawan-eeebe788fef445e6fb7f92596a47238205e33a10.tar.gz |
Fix ::before pseudo elem positioning
Diffstat (limited to 'src/css')
-rw-r--r-- | src/css/cascade.nim | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/css/cascade.nim b/src/css/cascade.nim index dc11628f..0e481a10 100644 --- a/src/css/cascade.nim +++ b/src/css/cascade.nim @@ -25,13 +25,12 @@ proc applyProperty(elem: Element, d: CSSDeclaration, pseudo: PseudoElem) = else: parent = rootProperties() - case pseudo - of PSEUDO_NONE: + if pseudo == PSEUDO_NONE: elem.css.applyValue(parent, d) - of PSEUDO_BEFORE, PSEUDO_AFTER: + else: if elem.pseudo[pseudo] == nil: elem.pseudo[pseudo] = elem.css.inheritProperties() - elem.pseudo[pseudo].applyValue(parent, d) + elem.pseudo[pseudo].applyValue(elem.css, d) elem.cssapplied = true @@ -111,10 +110,14 @@ proc checkRendered(element: Element, prev: CSSSpecifiedValues, ppseudo: array[PS if element.rendered: for p in PSEUDO_BEFORE..PSEUDO_AFTER: if ppseudo[p] != element.pseudo[p] and ppseudo[p] == nil: + if element.parentElement != nil: + element.parentElement.rendered = false element.rendered = false return for t in CSSPropertyType: if not element.css[t].equals(prev[t]): + if element.parentElement != nil: + element.parentElement.rendered = false element.rendered = false return for p in PSEUDO_BEFORE..PSEUDO_AFTER: |