diff options
author | Josh Matthews <josh@joshmatthews.net> | 2014-11-12 14:23:52 -0500 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2014-11-13 12:53:54 -0500 |
commit | c23edf6f5a020f24008c84957c1a290241632c6d (patch) | |
tree | 64428ac6615df95fabb298f0aeb274fc10f947c7 /components/script/dom/keyboardevent.rs | |
parent | 642a3592c7ea1b82e3a3a660370b9871aa5b5e96 (diff) | |
download | servo-c23edf6f5a020f24008c84957c1a290241632c6d.tar.gz servo-c23edf6f5a020f24008c84957c1a290241632c6d.zip |
Short-circuit initFooEvent while dispatching events.
Diffstat (limited to 'components/script/dom/keyboardevent.rs')
-rw-r--r-- | components/script/dom/keyboardevent.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs index 3a097fb54e2..b48a3295299 100644 --- a/components/script/dom/keyboardevent.rs +++ b/components/script/dom/keyboardevent.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::KeyboardEventBinding; use dom::bindings::codegen::Bindings::KeyboardEventBinding::{KeyboardEventMethods, KeyboardEventConstants}; use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods; -use dom::bindings::codegen::InheritTypes::{UIEventCast, KeyboardEventDerived}; +use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast, KeyboardEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::global; @@ -558,6 +558,11 @@ impl<'a> KeyboardEventMethods for JSRef<'a, KeyboardEvent> { _modifiersListArg: DOMString, repeat: bool, _locale: DOMString) { + let event: JSRef<Event> = EventCast::from_ref(self); + if event.dispatching() { + return; + } + let uievent: JSRef<UIEvent> = UIEventCast::from_ref(self); uievent.InitUIEvent(typeArg, canBubbleArg, cancelableArg, viewArg, 0); *self.key.borrow_mut() = keyArg; |