Return an enum instead of a boolean from dispatch_event

Fixes #13196
This commit is contained in:
Adolfo Ochagavía 2016-09-23 17:51:24 +02:00
parent 821797d6f7
commit 6c8bfdb774
7 changed files with 45 additions and 17 deletions

View file

@ -11,6 +11,7 @@ use dom::bindings::js::{JS, MutNullableHeap, Root};
use dom::bindings::refcounted::Trusted;
use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::bindings::str::DOMString;
use dom::eventdispatcher::EventStatus;
use dom::eventtarget::EventTarget;
use script_thread::Runnable;
use std::cell::Cell;
@ -153,6 +154,13 @@ impl Event {
self.cancelable.set(cancelable);
}
pub fn status(&self) -> EventStatus {
match self.DefaultPrevented() {
true => EventStatus::Canceled,
false => EventStatus::NotCanceled
}
}
#[inline]
pub fn set_current_target(&self, val: &EventTarget) {
self.current_target.set(Some(val));
@ -303,7 +311,7 @@ impl Event {
}
// https://html.spec.whatwg.org/multipage/#fire-a-simple-event
pub fn fire(&self, target: &EventTarget) -> bool {
pub fn fire(&self, target: &EventTarget) -> EventStatus {
self.set_trusted(true);
target.dispatch_event(self)
}