diff options
author | bors-servo <release+servo@mozilla.com> | 2014-05-07 03:04:21 -0400 |
---|---|---|
committer | bors-servo <release+servo@mozilla.com> | 2014-05-07 03:04:21 -0400 |
commit | e9ac0d1e2cab62cbef2b23bd7ba93374b52f4c02 (patch) | |
tree | bfbc3693276cce698af552e7d5297e6030cce854 /src/components/script/script_task.rs | |
parent | c872764a7c6e9d8d08566ce0ac4c044c28f8dad8 (diff) | |
parent | db81cf9bc7ceed3bf94a847ea11556de8237cea3 (diff) | |
download | servo-e9ac0d1e2cab62cbef2b23bd7ba93374b52f4c02.tar.gz servo-e9ac0d1e2cab62cbef2b23bd7ba93374b52f4c02.zip |
auto merge of #2339 : glennw/servo/js-event-assert, r=jdm
Diffstat (limited to 'src/components/script/script_task.rs')
-rw-r--r-- | src/components/script/script_task.rs | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs index a46e31ce7aa..45f1349b3f6 100644 --- a/src/components/script/script_task.rs +++ b/src/components/script/script_task.rs @@ -1167,30 +1167,27 @@ impl ScriptTask { } for node_address in node_address.iter() { - let mut node = - node::from_untrusted_node_address( - self.js_runtime.deref().ptr, *node_address).root(); - // Traverse node generations until a node that is an element is - // found. - while !node.is_element() { - match node.parent_node() { - Some(parent) => node = parent.root(), - None => break, - } - } - if node.is_element() { - node.set_hover_state(true); - - match *mouse_over_targets { - Some(ref mouse_over_targets) => { - if !target_compare { - target_compare = !mouse_over_targets.contains(&node.unrooted()); + let temp_node = + node::from_untrusted_node_address( + self.js_runtime.deref().ptr, *node_address); + + let maybe_node = temp_node.root().ancestors().find(|node| node.is_element()); + match maybe_node { + Some(mut node) => { + node.set_hover_state(true); + + match *mouse_over_targets { + Some(ref mouse_over_targets) => { + if !target_compare { + target_compare = !mouse_over_targets.contains(&node.unrooted()); + } } + None => {} } - None => {} + target_list.push(node.unrooted()); } - target_list.push(node.unrooted()); + None => {} } } match *mouse_over_targets { |