aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/script_task.rs
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-05-07 03:04:21 -0400
committerbors-servo <release+servo@mozilla.com>2014-05-07 03:04:21 -0400
commite9ac0d1e2cab62cbef2b23bd7ba93374b52f4c02 (patch)
treebfbc3693276cce698af552e7d5297e6030cce854 /src/components/script/script_task.rs
parentc872764a7c6e9d8d08566ce0ac4c044c28f8dad8 (diff)
parentdb81cf9bc7ceed3bf94a847ea11556de8237cea3 (diff)
downloadservo-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.rs37
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 {