aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r--components/script/dom/node.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index c1da57eae88..05b81a84d5d 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -440,6 +440,26 @@ impl Node {
.upcast::<Event>()
.dispatch(self.upcast::<EventTarget>(), false);
}
+
+ pub fn parent_directionality(&self) -> String {
+ let mut current = self.GetParentNode();
+
+ loop {
+ match current {
+ Some(node) => {
+ if let Some(directionality) = node
+ .downcast::<HTMLElement>()
+ .and_then(|html_element| html_element.directionality())
+ {
+ return directionality;
+ } else {
+ current = node.GetParentNode();
+ }
+ },
+ None => return "ltr".to_owned(),
+ }
+ }
+ }
}
pub struct QuerySelectorIterator {