diff options
author | bptato <nincsnevem662@gmail.com> | 2022-12-19 21:03:15 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-12-19 21:03:15 +0100 |
commit | ea9df035a294bf1cfa715c140d0d22aa018e262e (patch) | |
tree | 9f1ec79e96003494666970c16f905c0b0c9608ff /src/css | |
parent | dad0c1c04b6d4f67da407f69cec98221d178c194 (diff) | |
download | chawan-ea9df035a294bf1cfa715c140d0d22aa018e262e.tar.gz |
More DOM work
Diffstat (limited to 'src/css')
-rw-r--r-- | src/css/cascade.nim | 6 | ||||
-rw-r--r-- | src/css/match.nim | 8 | ||||
-rw-r--r-- | src/css/stylednode.nim | 6 |
3 files changed, 12 insertions, 8 deletions
diff --git a/src/css/cascade.nim b/src/css/cascade.nim index eb9e87b8..4d594785 100644 --- a/src/css/cascade.nim +++ b/src/css/cascade.nim @@ -359,9 +359,9 @@ proc applyRules(document: Document, ua, user: CSSStylesheet, cachedTree: StyledN elif elem.tagType == TAG_IMG or elem.tagType == TAG_IMAGE: stack_append styledChild, PSEUDO_IMAGE else: - for i in countdown(elem.childNodes.high, 0): - if elem.childNodes[i].nodeType in {ELEMENT_NODE, TEXT_NODE}: - stack_append styledChild, elem.childNodes[i] + for i in countdown(elem.childList.high, 0): + if elem.childList[i].nodeType in {ELEMENT_NODE, TEXT_NODE}: + stack_append styledChild, elem.childList[i] if elem.tagType == TAG_INPUT: stack_append styledChild, PSEUDO_INPUT_TEXT diff --git a/src/css/match.nim b/src/css/match.nim index cc10c6b9..950061a1 100644 --- a/src/css/match.nim +++ b/src/css/match.nim @@ -51,7 +51,7 @@ func pseudoSelectorMatches[T: Element|StyledNode](elem: T, sel: Selector, felem: let parent = when selem is StyledNode: selem.parent else: selem.parentNode if parent == nil: return false - for child in parent.children: + for child in parent.elementList: when selem is StyledNode: if not child.isDomElement: continue if child == selem: @@ -72,7 +72,7 @@ func pseudoSelectorMatches[T: Element|StyledNode](elem: T, sel: Selector, felem: let parent = when selem is StyledNode: selem.parent else: selem.parentNode if parent == nil: return false - for child in parent.children_rev: + for child in parent.elementList_rev: when selem is StyledNode: if not child.isDomElement: continue if child == selem: @@ -138,7 +138,7 @@ func combinatorSelectorMatches[T: Element|StyledNode](elem: T, sel: Selector, fe let parent = when elem is StyledNode: elem.parent else: elem.parentElement if parent == nil: return false - for child in parent.children_rev: + for child in parent.elementList_rev: when elem is StyledNode: if not child.isDomElement: continue if found: @@ -154,7 +154,7 @@ func combinatorSelectorMatches[T: Element|StyledNode](elem: T, sel: Selector, fe let parent = when selem is StyledNode: selem.parent else: elem.parentElement if parent == nil: return false - for child in parent.children_rev: + for child in parent.elementList_rev: when selem is StyledNode: if not child.isDomElement: continue if child == selem: diff --git a/src/css/stylednode.nim b/src/css/stylednode.nim index bc0d1b5c..2760e179 100644 --- a/src/css/stylednode.nim +++ b/src/css/stylednode.nim @@ -68,7 +68,11 @@ iterator branch*(node: StyledNode): StyledNode {.inline.} = yield node node = node.parent -iterator children_rev*(node: StyledNode): StyledNode {.inline.} = +iterator elementList*(node: StyledNode): StyledNode {.inline.} = + for child in node.children: + yield child + +iterator elementList_rev*(node: StyledNode): StyledNode {.inline.} = for i in countdown(node.children.high, 0): yield node.children[i] |