aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/event.rs22
-rw-r--r--components/script/dom/htmlformelement.rs4
-rw-r--r--components/script/dom/xmlhttprequest.rs4
3 files changed, 22 insertions, 8 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))
}
}
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index 03bd593cb64..75ce3119648 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -15,7 +15,7 @@ use dom::bindings::utils::{Reflectable, Reflector};
use dom::document::{Document, DocumentHelpers};
use dom::element::{Element, AttributeHandlers, HTMLFormElementTypeId, HTMLTextAreaElementTypeId, HTMLDataListElementTypeId};
use dom::element::{HTMLInputElementTypeId, HTMLButtonElementTypeId, HTMLObjectElementTypeId, HTMLSelectElementTypeId};
-use dom::event::Event;
+use dom::event::{Event, Bubbles, Cancelable};
use dom::eventtarget::{EventTarget, NodeTargetTypeId};
use dom::htmlelement::HTMLElement;
use dom::htmlinputelement::HTMLInputElement;
@@ -172,7 +172,7 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> {
// TODO: Handle validation
let event = Event::new(&Window(*win),
"submit".to_string(),
- true, true).root();
+ Bubbles, Cancelable).root();
let target: JSRef<EventTarget> = EventTargetCast::from_ref(self);
target.DispatchEvent(*event).ok();
if event.DefaultPrevented() {
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index b51a4859253..ac1d283cc56 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -17,7 +17,7 @@ use dom::bindings::js::{MutNullableJS, JS, JSRef, Temporary, OptionalRootedRoota
use dom::bindings::str::ByteString;
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::document::Document;
-use dom::event::Event;
+use dom::event::{Event, DoesNotBubble, Cancelable};
use dom::eventtarget::{EventTarget, EventTargetHelpers, XMLHttpRequestTargetTypeId};
use dom::progressevent::ProgressEvent;
use dom::urlsearchparams::URLSearchParamsHelpers;
@@ -746,7 +746,7 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> {
let global = self.global.root();
let event = Event::new(&global.root_ref(),
"readystatechange".to_string(),
- false, true).root();
+ DoesNotBubble, Cancelable).root();
let target: JSRef<EventTarget> = EventTargetCast::from_ref(self);
target.dispatch_event_with_target(None, *event).ok();
}