#4508 Adding simple test and actually getting the event to dispatch

This commit is contained in:
Matt McCoy 2015-03-17 19:54:05 -04:00
parent 5938a4c0f5
commit 0bd717e470
3 changed files with 21 additions and 6 deletions

View file

@ -629,7 +629,7 @@ impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> {
ctrl, alt, shift, meta,
None, props.key_code).root();
let event = EventCast::from_ref(keyevent.r());
let _ = target.DispatchEvent(event);
event.fire(target);
let mut prevented = event.DefaultPrevented();
// https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#keys-cancelable-keys
@ -642,7 +642,7 @@ impl<'a> DocumentHelpers<'a> for JSRef<'a, Document> {
ctrl, alt, shift, meta,
props.char_code, 0).root();
let ev = EventCast::from_ref(event.r());
let _ = target.DispatchEvent(ev);
ev.fire(target);
prevented = ev.DefaultPrevented();
// TODO: if keypress event is canceled, prevent firing input events
}

View file

@ -13,7 +13,7 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLEle
use dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementDerived, HTMLFieldSetElementDerived};
use dom::bindings::codegen::InheritTypes::{KeyboardEventCast, TextDerived};
use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JS, JSRef, LayoutJS, Temporary, OptionalRootable};
use dom::bindings::js::{JSRef, LayoutJS, Temporary, OptionalRootable};
use dom::bindings::refcounted::Trusted;
use dom::document::{Document, DocumentHelpers};
use dom::element::{Element, AttributeHandlers};
@ -347,7 +347,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> {
KeyReaction::DispatchInput => {
self.value_changed.set(true);
if event.IsTrusted() == true {
if event.IsTrusted() {
let window = window_from_node(*self).root();
let window = window.r();
let chan = window.script_chan();
@ -355,7 +355,7 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> {
let dispatcher = ChangeEventRunnable {
element: handler,
};
chan.send(ScriptMsg::RunnableMsg(box dispatcher));
let _ = chan.send(ScriptMsg::RunnableMsg(box dispatcher));
}
self.force_relayout();
@ -382,4 +382,4 @@ impl Runnable for ChangeEventRunnable {
let target = self.element.to_temporary().root();
target.r().dispatch_change_event();
}
}
}