aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_task.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/script_task.rs')
-rw-r--r--components/script/script_task.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/components/script/script_task.rs b/components/script/script_task.rs
index 88c84ef5b74..a8c7901bc77 100644
--- a/components/script/script_task.rs
+++ b/components/script/script_task.rs
@@ -928,9 +928,14 @@ impl ScriptTask {
let temp_node =
node::from_untrusted_node_address(
- self.js_runtime.deref().ptr, node_address);
+ self.js_runtime.deref().ptr, node_address).root();
+
+ let maybe_node = if !temp_node.is_element() {
+ temp_node.ancestors().find(|node| node.is_element())
+ } else {
+ Some(*temp_node)
+ };
- let maybe_node = temp_node.root().ancestors().find(|node| node.is_element());
match maybe_node {
Some(node) => {
debug!("clicked on {:s}", node.debug_str());
@@ -945,6 +950,8 @@ impl ScriptTask {
true, true).root();
let eventtarget: JSRef<EventTarget> = EventTargetCast::from_ref(node);
let _ = eventtarget.dispatch_event_with_target(None, *event);
+
+ window.flush_layout(ReflowForDisplay);
}
None => {}
}