aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventdispatcher.rs
diff options
context:
space:
mode:
authorMs2ger <Ms2ger@gmail.com>2015-09-16 13:41:33 +0200
committerMs2ger <Ms2ger@gmail.com>2015-09-16 16:28:56 +0200
commit995cb21b481366f21aeb599236e68083d5c28781 (patch)
treed358244766a0455cfaf640195606f4ab73123c04 /components/script/dom/eventdispatcher.rs
parenta5925020ce2752192ff45a401e86205dbbcb65f1 (diff)
downloadservo-995cb21b481366f21aeb599236e68083d5c28781.tar.gz
servo-995cb21b481366f21aeb599236e68083d5c28781.zip
Use if-let in dispatch_to_listeners, and simplify break conditions.
Diffstat (limited to 'components/script/dom/eventdispatcher.rs')
-rw-r--r--components/script/dom/eventdispatcher.rs54
1 files changed, 22 insertions, 32 deletions
diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs
index 13ccf5be4b9..51617a49a2d 100644
--- a/components/script/dom/eventdispatcher.rs
+++ b/components/script/dom/eventdispatcher.rs
@@ -21,25 +21,20 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar
/* capturing */
event.set_phase(EventPhase::Capturing);
for cur_target in chain.iter().rev() {
- let stopped = match cur_target.get_listeners_for(&type_, ListenerPhase::Capturing) {
- Some(listeners) => {
- event.set_current_target(cur_target);
- for listener in &listeners {
- // Explicitly drop any exception on the floor.
- listener.call_or_handle_event(*cur_target, event, Report);
+ if let Some(listeners) = cur_target.get_listeners_for(&type_, ListenerPhase::Capturing) {
+ event.set_current_target(cur_target);
+ for listener in &listeners {
+ // Explicitly drop any exception on the floor.
+ listener.call_or_handle_event(*cur_target, event, Report);
- if event.stop_immediate() {
- break;
- }
+ if event.stop_immediate() {
+ break;
}
-
- event.stop_propagation()
}
- None => false
- };
- if stopped {
- break;
+ if event.stop_propagation() {
+ break;
+ }
}
}
@@ -48,8 +43,7 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar
event.set_phase(EventPhase::AtTarget);
event.set_current_target(target.clone());
- let opt_listeners = target.get_listeners(&type_);
- for listeners in opt_listeners {
+ if let Some(listeners) = target.get_listeners(&type_) {
for listener in listeners {
// Explicitly drop any exception on the floor.
listener.call_or_handle_event(target, event, Report);
@@ -66,24 +60,20 @@ fn dispatch_to_listeners(event: &Event, target: &EventTarget, chain: &[&EventTar
event.set_phase(EventPhase::Bubbling);
for cur_target in chain {
- let stopped = match cur_target.get_listeners_for(&type_, ListenerPhase::Bubbling) {
- Some(listeners) => {
- event.set_current_target(cur_target);
- for listener in &listeners {
- // Explicitly drop any exception on the floor.
- listener.call_or_handle_event(*cur_target, event, Report);
-
- if event.stop_immediate() {
- break;
- }
+ if let Some(listeners) = cur_target.get_listeners_for(&type_, ListenerPhase::Bubbling) {
+ event.set_current_target(cur_target);
+ for listener in &listeners {
+ // Explicitly drop any exception on the floor.
+ listener.call_or_handle_event(*cur_target, event, Report);
+
+ if event.stop_immediate() {
+ break;
}
+ }
- event.stop_propagation()
+ if event.stop_propagation() {
+ break;
}
- None => false
- };
- if stopped {
- break;
}
}
}