diff options
Diffstat (limited to 'components/script/page.rs')
-rw-r--r-- | components/script/page.rs | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/components/script/page.rs b/components/script/page.rs index b369a5e3337..c7ea2e44bec 100644 --- a/components/script/page.rs +++ b/components/script/page.rs @@ -436,23 +436,23 @@ impl Page { address } - pub fn get_nodes_under_mouse(&self, point: &Point2D<f32>) -> Option<Vec<UntrustedNodeAddress>> { + pub fn get_nodes_under_mouse(&self, point: &Point2D<f32>) -> Vec<UntrustedNodeAddress> { + let mut results = vec!(); let frame = self.frame(); let document = frame.as_ref().unwrap().document.root(); - let root = match document.r().GetDocumentElement().root() { - None => return None, - Some(root) => root, - }; - let root: JSRef<Node> = NodeCast::from_ref(root.r()); - let address = match self.layout().mouse_over(root.to_trusted_node_address(), *point) { - Ok(MouseOverResponse(node_address)) => { - Some(node_address) + match document.r().GetDocumentElement().root() { + Some(root) => { + let root: JSRef<Node> = NodeCast::from_ref(root.r()); + match self.layout().mouse_over(root.to_trusted_node_address(), *point) { + Ok(MouseOverResponse(node_addresses)) => { + results = node_addresses; + } + Err(()) => {} + }; } - Err(()) => { - None - } - }; - address + None => {} + } + results } } |