aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/eventtarget.rs
diff options
context:
space:
mode:
authorArthur Skobara <skobara.arthur@gmail.com>2015-12-20 12:52:28 +0600
committerArthur Skobara <skobara.arthur@gmail.com>2015-12-22 13:47:57 +0600
commitd38771e2708b7beabfb9c31c5bbc288534c20b77 (patch)
tree3d03faf8e0ca346a4def764c648d5b41969ebd83 /components/script/dom/eventtarget.rs
parentdf087cc6cf4d97c5cc93befec922b38b56e6def7 (diff)
downloadservo-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.rs22
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 {