mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +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 */
|
/* capturing */
|
||||||
for &cur_target in chain.rev_iter() {
|
for &cur_target in chain.rev_iter() {
|
||||||
//XXX bad clone
|
let stopped = match cur_target.eventtarget().get_listeners_for(type_, Capturing) {
|
||||||
let stopped = match cur_target.eventtarget().get_listeners_for(type_.clone(), Capturing) {
|
|
||||||
Some(listeners) => {
|
Some(listeners) => {
|
||||||
event.mut_event().current_target = Some(cur_target);
|
event.mut_event().current_target = Some(cur_target);
|
||||||
for listener in listeners.iter() {
|
for listener in listeners.iter() {
|
||||||
|
@ -64,7 +63,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
|
||||||
event.current_target = Some(target);
|
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 listeners in opt_listeners.iter() {
|
||||||
for listener in listeners.iter() {
|
for listener in listeners.iter() {
|
||||||
listener.HandleEvent__(event, eReportExceptions);
|
listener.HandleEvent__(event, eReportExceptions);
|
||||||
|
@ -80,8 +79,7 @@ pub fn dispatch_event(target: AbstractEventTarget, event: AbstractEvent) -> bool
|
||||||
event.mut_event().phase = Phase_Bubbling;
|
event.mut_event().phase = Phase_Bubbling;
|
||||||
|
|
||||||
for &cur_target in chain.iter() {
|
for &cur_target in chain.iter() {
|
||||||
//XXX bad clone
|
let stopped = match cur_target.eventtarget().get_listeners_for(type_, Bubbling) {
|
||||||
let stopped = match cur_target.eventtarget().get_listeners_for(type_.clone(), Bubbling) {
|
|
||||||
Some(listeners) => {
|
Some(listeners) => {
|
||||||
event.mut_event().current_target = Some(cur_target);
|
event.mut_event().current_target = Some(cur_target);
|
||||||
for listener in listeners.iter() {
|
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| {
|
do self.handlers.find_equiv(&type_).map |listeners| {
|
||||||
listeners.iter().map(|entry| entry.listener).collect()
|
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]> {
|
-> Option<~[EventListener]> {
|
||||||
do self.handlers.find_equiv(&type_).map |listeners| {
|
do self.handlers.find_equiv(&type_).map |listeners| {
|
||||||
let filtered = listeners.iter().filter(|entry| entry.phase == desired_phase);
|
let filtered = listeners.iter().filter(|entry| entry.phase == desired_phase);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue