diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/eventdispatcher.rs | 6 | ||||
-rw-r--r-- | components/script/dom/eventtarget.rs | 12 |
2 files changed, 7 insertions, 11 deletions
diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs index f80a217658b..966314062b5 100644 --- a/components/script/dom/eventdispatcher.rs +++ b/components/script/dom/eventdispatcher.rs @@ -67,7 +67,7 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar /* capturing */ event.set_phase(EventPhase::Capturing); for cur_target in chain.iter().rev() { - if let Some(listeners) = cur_target.get_listeners_for(&type_, ListenerPhase::Capturing) { + if let Some(listeners) = cur_target.get_listeners_for(&type_, Some(ListenerPhase::Capturing)) { event.set_current_target(cur_target); for listener in &listeners { handle_event(window.r(), listener, *cur_target, event); @@ -90,7 +90,7 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar event.set_phase(EventPhase::AtTarget); event.set_current_target(target); - if let Some(listeners) = target.get_listeners(&type_) { + if let Some(listeners) = target.get_listeners_for(&type_, None) { for listener in listeners { handle_event(window.r(), &listener, target, event); @@ -113,7 +113,7 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar event.set_phase(EventPhase::Bubbling); for cur_target in chain { - if let Some(listeners) = cur_target.get_listeners_for(&type_, ListenerPhase::Bubbling) { + if let Some(listeners) = cur_target.get_listeners_for(&type_, Some(ListenerPhase::Bubbling)) { event.set_current_target(cur_target); for listener in &listeners { handle_event(window.r(), listener, *cur_target, event); diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index aa49d9a110f..8c4df94a64d 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -301,16 +301,12 @@ impl EventTarget { } } - pub fn get_listeners(&self, type_: &Atom) -> Option<Vec<CompiledEventListener>> { - self.handlers.borrow_mut().get_mut(type_).map(|listeners| { - listeners.get_listeners(None, self, type_) - }) - } - - pub fn get_listeners_for(&self, type_: &Atom, desired_phase: ListenerPhase) + pub fn get_listeners_for(&self, + type_: &Atom, + desired_phase: Option<ListenerPhase>) -> Option<Vec<CompiledEventListener>> { self.handlers.borrow_mut().get_mut(type_).map(|listeners| { - listeners.get_listeners(Some(desired_phase), self, type_) + listeners.get_listeners(desired_phase, self, type_) }) } |