diff options
author | Tim Taubert <tim@timtaubert.de> | 2014-10-11 14:57:24 +0200 |
---|---|---|
committer | Tim Taubert <tim@timtaubert.de> | 2014-10-11 16:57:00 +0200 |
commit | 5080c0d86e4f3388f78fff535d746c51a757b618 (patch) | |
tree | 28a465b74b60bb25fbbecb5dad48ae2737d237a8 /components/script/dom/event.rs | |
parent | 9dfd5e7fcd2011a411b219e8c45aadc0ecb270bd (diff) | |
download | servo-5080c0d86e4f3388f78fff535d746c51a757b618.tar.gz servo-5080c0d86e4f3388f78fff535d746c51a757b618.zip |
Make Event::new take enumerated values instead of booleans (fixes #3643)
Diffstat (limited to 'components/script/dom/event.rs')
-rw-r--r-- | components/script/dom/event.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 085a30baad4..92df2faac71 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -35,6 +35,18 @@ pub enum EventTypeId { UIEventTypeId } +#[deriving(PartialEq)] +pub enum EventBubbles { + Bubbles, + DoesNotBubble +} + +#[deriving(PartialEq)] +pub enum EventCancelable { + Cancelable, + NotCancelable +} + #[jstraceable] #[must_root] pub struct Event { @@ -84,17 +96,19 @@ impl Event { pub fn new(global: &GlobalRef, type_: DOMString, - can_bubble: bool, - cancelable: bool) -> Temporary<Event> { + bubbles: EventBubbles, + cancelable: EventCancelable) -> Temporary<Event> { let event = Event::new_uninitialized(global).root(); - event.InitEvent(type_, can_bubble, cancelable); + event.InitEvent(type_, bubbles == Bubbles, cancelable == Cancelable); Temporary::from_rooted(*event) } pub fn Constructor(global: &GlobalRef, type_: DOMString, init: &EventBinding::EventInit) -> Fallible<Temporary<Event>> { - Ok(Event::new(global, type_, init.bubbles, init.cancelable)) + let bubbles = if init.bubbles { Bubbles } else { DoesNotBubble }; + let cancelable = if init.cancelable { Cancelable } else { NotCancelable }; + Ok(Event::new(global, type_, bubbles, cancelable)) } } |