mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
#4508 Adding simple test and actually getting the event to dispatch
This commit is contained in:
parent
5938a4c0f5
commit
0bd717e470
3 changed files with 21 additions and 6 deletions
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
15
tests/html/test_textarea_input.html
Normal file
15
tests/html/test_textarea_input.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<textarea id="textarea">
|
||||
</textarea>
|
||||
</body>
|
||||
<script>
|
||||
var area = document.getElementById('textarea');
|
||||
area.addEventListener('input', function() {
|
||||
alert('input detected');
|
||||
});
|
||||
</script>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue