Simplify code for directionality

This commit is contained in:
Dmitry Kolupaev 2020-02-16 22:53:03 +03:00
parent edb940e613
commit 35d340daba
2 changed files with 9 additions and 14 deletions

View file

@ -543,15 +543,12 @@ impl Element {
// https://html.spec.whatwg.org/multipage/#the-directionality // https://html.spec.whatwg.org/multipage/#the-directionality
pub fn directionality(&self) -> String { pub fn directionality(&self) -> String {
if let Some(directionality) = self self.downcast::<HTMLElement>()
.downcast::<HTMLElement>()
.and_then(|html_element| html_element.directionality()) .and_then(|html_element| html_element.directionality())
{ .unwrap_or_else(|| {
directionality
} else {
let node = self.upcast::<Node>(); let node = self.upcast::<Node>();
node.parent_directionality() node.parent_directionality()
} })
} }
} }

View file

@ -438,21 +438,19 @@ impl Node {
loop { loop {
match current { match current {
Some(parent) => { Some(node) => {
if let Some(directionality) = parent if let Some(directionality) = node
.downcast::<HTMLElement>() .downcast::<HTMLElement>()
.and_then(|html_element| html_element.directionality()) .and_then(|html_element| html_element.directionality())
{ {
return directionality; return directionality;
} else { } else {
current = parent.GetParentNode(); current = node.GetParentNode();
} }
}, },
None => break, None => return "ltr".to_owned(),
} }
} }
"ltr".to_owned()
} }
} }