mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
#4508 Ranaming the runnable and making sure the event is trusted
This commit is contained in:
parent
a481c8f28a
commit
5938a4c0f5
1 changed files with 15 additions and 13 deletions
|
@ -341,20 +341,22 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> {
|
||||||
doc.r().request_focus(ElementCast::from_ref(*self));
|
doc.r().request_focus(ElementCast::from_ref(*self));
|
||||||
} else if "keydown" == event.Type().as_slice() && !event.DefaultPrevented() {
|
} else if "keydown" == event.Type().as_slice() && !event.DefaultPrevented() {
|
||||||
let keyevent: Option<JSRef<KeyboardEvent>> = KeyboardEventCast::to_ref(event);
|
let keyevent: Option<JSRef<KeyboardEvent>> = KeyboardEventCast::to_ref(event);
|
||||||
keyevent.map(|event| {
|
keyevent.map(|kevent| {
|
||||||
match self.textinput.borrow_mut().handle_keydown(event) {
|
match self.textinput.borrow_mut().handle_keydown(kevent) {
|
||||||
KeyReaction::TriggerDefaultAction => (),
|
KeyReaction::TriggerDefaultAction => (),
|
||||||
KeyReaction::DispatchInput => {
|
KeyReaction::DispatchInput => {
|
||||||
self.value_changed.set(true);
|
self.value_changed.set(true);
|
||||||
|
|
||||||
let window = window_from_node(*self).root();
|
if event.IsTrusted() == true {
|
||||||
let window = window.r();
|
let window = window_from_node(*self).root();
|
||||||
let chan = window.script_chan();
|
let window = window.r();
|
||||||
let handler = Trusted::new(window.get_cx(), *self , chan.clone());
|
let chan = window.script_chan();
|
||||||
let dispatcher = TrustedHTMLTextAreaElement {
|
let handler = Trusted::new(window.get_cx(), *self , chan.clone());
|
||||||
element: handler,
|
let dispatcher = ChangeEventRunnable {
|
||||||
};
|
element: handler,
|
||||||
chan.send(ScriptMsg::RunnableMsg(box dispatcher));
|
};
|
||||||
|
chan.send(ScriptMsg::RunnableMsg(box dispatcher));
|
||||||
|
}
|
||||||
|
|
||||||
self.force_relayout();
|
self.force_relayout();
|
||||||
}
|
}
|
||||||
|
@ -371,12 +373,12 @@ impl<'a> FormControl<'a> for JSRef<'a, HTMLTextAreaElement> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct TrustedHTMLTextAreaElement {
|
pub struct ChangeEventRunnable {
|
||||||
element: Trusted<HTMLTextAreaElement>,
|
element: Trusted<HTMLTextAreaElement>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Runnable for TrustedHTMLTextAreaElement {
|
impl Runnable for ChangeEventRunnable {
|
||||||
fn handler(self: Box<TrustedHTMLTextAreaElement>) {
|
fn handler(self: Box<ChangeEventRunnable>) {
|
||||||
let target = self.element.to_temporary().root();
|
let target = self.element.to_temporary().root();
|
||||||
target.r().dispatch_change_event();
|
target.r().dispatch_change_event();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue