diff options
author | Arthur Skobara <skobara.arthur@gmail.com> | 2015-12-20 12:52:28 +0600 |
---|---|---|
committer | Arthur Skobara <skobara.arthur@gmail.com> | 2015-12-22 13:47:57 +0600 |
commit | d38771e2708b7beabfb9c31c5bbc288534c20b77 (patch) | |
tree | 3d03faf8e0ca346a4def764c648d5b41969ebd83 /components/script/dom/eventtarget.rs | |
parent | df087cc6cf4d97c5cc93befec922b38b56e6def7 (diff) | |
download | servo-d38771e2708b7beabfb9c31c5bbc288534c20b77.tar.gz servo-d38771e2708b7beabfb9c31c5bbc288534c20b77.zip |
Implement EventTarget::fire_simple_event and EventTarget::fire_simple_event_params
Diffstat (limited to 'components/script/dom/eventtarget.rs')
-rw-r--r-- | components/script/dom/eventtarget.rs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 612c3d78b11..94998185507 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -11,12 +11,12 @@ use dom::bindings::codegen::Bindings::EventListenerBinding::EventListener; use dom::bindings::codegen::Bindings::EventTargetBinding::EventTargetMethods; use dom::bindings::codegen::UnionTypes::EventOrString; use dom::bindings::error::{Error, Fallible, report_pending_exception}; -use dom::bindings::global::global_root_from_reflector; +use dom::bindings::global::{GlobalRef, global_root_from_reflector}; use dom::bindings::inheritance::{Castable, EventTargetTypeId}; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflectable, Reflector}; use dom::errorevent::ErrorEvent; -use dom::event::Event; +use dom::event::{Event, EventBubbles, EventCancelable}; use dom::eventdispatcher::dispatch_event; use dom::virtualmethods::VirtualMethods; use dom::window::Window; @@ -329,6 +329,24 @@ impl EventTarget { pub fn has_handlers(&self) -> bool { !self.handlers.borrow().is_empty() } + + /// Implements https://html.spec.whatwg.org/multipage/#fire-a-simple-event + pub fn fire_simple_event(&self, name: &str, win: GlobalRef) -> Root<Event> { + self.fire_simple_event_params(name, EventBubbles::DoesNotBubble, + EventCancelable::NotCancelable, win) + } + + /// Implements more customizable variant of EventTarget::fire_simple_event. + pub fn fire_simple_event_params(&self, name: &str, + bubbles: EventBubbles, + cancelable: EventCancelable, + win: GlobalRef) -> Root<Event> { + let event = Event::new(win, Atom::from(name), bubbles, cancelable); + + event.fire(self); + + event + } } impl EventTargetMethods for EventTarget { |