diff options
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 20 |
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 { |