aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/document.rs4
-rw-r--r--components/script/dom/htmltextareaelement.rs8
-rw-r--r--tests/html/test_textarea_input.html15
3 files changed, 21 insertions, 6 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 71b3a26873c..6da0dd57316 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -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
}
diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs
index 41570fd1fa1..acacf3cb01a 100644
--- a/components/script/dom/htmltextareaelement.rs
+++ b/components/script/dom/htmltextareaelement.rs
@@ -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();
}
-} \ No newline at end of file
+}
diff --git a/tests/html/test_textarea_input.html b/tests/html/test_textarea_input.html
new file mode 100644
index 00000000000..7fd3ab7cb36
--- /dev/null
+++ b/tests/html/test_textarea_input.html
@@ -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> \ No newline at end of file