diff options
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r-- | components/script/dom/document.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 43a4473689e..68cd619ba43 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -735,9 +735,22 @@ impl Document { // https://w3c.github.io/uievents/#trusted-events event.set_trusted(true); // https://html.spec.whatwg.org/multipage/#run-authentic-click-activation-steps + let activatable = el.as_maybe_activatable(); match mouse_event_type { MouseEventType::Click => el.authentic_click_activation(event), - _ => { + MouseEventType::MouseDown => { + if let Some(a) = activatable { + a.enter_formal_activation_state(); + } + + let target = node.upcast(); + event.fire(target); + }, + MouseEventType::MouseUp => { + if let Some(a) = activatable { + a.exit_formal_activation_state(); + } + let target = node.upcast(); event.fire(target); }, @@ -904,6 +917,7 @@ impl Document { .inclusive_ancestors() .filter_map(Root::downcast::<Element>) { element.set_hover_state(false); + element.set_active_state(false); } } @@ -2869,6 +2883,8 @@ impl DocumentProgressHandler { } impl Runnable for DocumentProgressHandler { + fn name(&self) -> &'static str { "DocumentProgressHandler" } + fn handler(self: Box<DocumentProgressHandler>) { let document = self.addr.root(); let window = document.window(); |