mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
commit
bdc7e984eb
2 changed files with 5 additions and 7 deletions
|
@ -34,8 +34,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
|
|||
|
||||
/* capturing */
|
||||
for &cur_target in chain.rev_iter() {
|
||||
//XXX bad clone
|
||||
let stopped = match cur_target.eventtarget().get_listeners_for(type_.clone(), Capturing) {
|
||||
let stopped = match cur_target.eventtarget().get_listeners_for(type_, Capturing) {
|
||||
Some(listeners) => {
|
||||
event.mut_event().current_target = Some(cur_target);
|
||||
for listener in listeners.iter() {
|
||||
|
@ -64,7 +63,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
|
|||
event.current_target = Some(target);
|
||||
}
|
||||
|
||||
let opt_listeners = target.eventtarget().get_listeners(type_.clone());
|
||||
let opt_listeners = target.eventtarget().get_listeners(type_);
|
||||
for listeners in opt_listeners.iter() {
|
||||
for listener in listeners.iter() {
|
||||
listener.HandleEvent__(event, eReportExceptions);
|
||||
|
@ -80,8 +79,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
|
|||
event.mut_event().phase = Phase_Bubbling;
|
||||
|
||||
for &cur_target in chain.iter() {
|
||||
//XXX bad clone
|
||||
let stopped = match cur_target.eventtarget().get_listeners_for(type_.clone(), Bubbling) {
|
||||
let stopped = match cur_target.eventtarget().get_listeners_for(type_, Bubbling) {
|
||||
Some(listeners) => {
|
||||
event.mut_event().current_target = Some(cur_target);
|
||||
for listener in listeners.iter() {
|
||||
|
|
|
@ -112,13 +112,13 @@ impl EventTarget {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn get_listeners(&self, type_: ~str) -> Option<~[EventListener]> {
|
||||
pub fn get_listeners(&self, type_: &str) -> Option<~[EventListener]> {
|
||||
do self.handlers.find_equiv(&type_).map |listeners| {
|
||||
listeners.iter().map(|entry| entry.listener).collect()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_listeners_for(&self, type_: ~str, desired_phase: ListenerPhase)
|
||||
pub fn get_listeners_for(&self, type_: &str, desired_phase: ListenerPhase)
|
||||
-> Option<~[EventListener]> {
|
||||
do self.handlers.find_equiv(&type_).map |listeners| {
|
||||
let filtered = listeners.iter().filter(|entry| entry.phase == desired_phase);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue