diff options
author | Matt McCoy <mattnenterprise@yahoo.com> | 2015-03-17 16:01:39 -0400 |
---|---|---|
committer | Matt McCoy <mattnenterprise@yahoo.com> | 2015-03-17 17:05:41 -0400 |
commit | 5938a4c0f54cfaca37fa4bec867c7eedc4e84975 (patch) | |
tree | e08f640612a1490503fd4a6b5636dd608547ea89 /components/script | |
parent | a481c8f28a8db9002190358d9c4b986c9098f101 (diff) | |
download | servo-5938a4c0f54cfaca37fa4bec867c7eedc4e84975.tar.gz servo-5938a4c0f54cfaca37fa4bec867c7eedc4e84975.zip |
#4508 Ranaming the runnable and making sure the event is trusted
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/htmltextareaelement.rs | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index 7aad495b1bf..41570fd1fa1 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -341,20 +341,22 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> { doc.r().request_focus(ElementCast::from_ref(*self)); } else if "keydown" == event.Type().as_slice() && !event.DefaultPrevented() { let keyevent: Option<JSRef<KeyboardEvent>> = KeyboardEventCast::to_ref(event); - keyevent.map(|event| { - match self.textinput.borrow_mut().handle_keydown(event) { + keyevent.map(|kevent| { + match self.textinput.borrow_mut().handle_keydown(kevent) { KeyReaction::TriggerDefaultAction => (), KeyReaction::DispatchInput => { self.value_changed.set(true); - let window = window_from_node(*self).root(); - let window = window.r(); - let chan = window.script_chan(); - let handler = Trusted::new(window.get_cx(), *self , chan.clone()); - let dispatcher = TrustedHTMLTextAreaElement { - element: handler, - }; - chan.send(ScriptMsg::RunnableMsg(box dispatcher)); + if event.IsTrusted() == true { + let window = window_from_node(*self).root(); + let window = window.r(); + let chan = window.script_chan(); + let handler = Trusted::new(window.get_cx(), *self , chan.clone()); + let dispatcher = ChangeEventRunnable { + element: handler, + }; + chan.send(ScriptMsg::RunnableMsg(box dispatcher)); + } self.force_relayout(); } @@ -371,12 +373,12 @@ impl<'a> FormControl<'a> for JSRef<'a, HTMLTextAreaElement> { } } -pub struct TrustedHTMLTextAreaElement { +pub struct ChangeEventRunnable { element: Trusted<HTMLTextAreaElement>, } -impl Runnable for TrustedHTMLTextAreaElement { - fn handler(self: Box<TrustedHTMLTextAreaElement>) { +impl Runnable for ChangeEventRunnable { + fn handler(self: Box<ChangeEventRunnable>) { let target = self.element.to_temporary().root(); target.r().dispatch_change_event(); } |