diff options
Diffstat (limited to 'components/script/dom/htmltextareaelement.rs')
-rwxr-xr-x | components/script/dom/htmltextareaelement.rs | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index fd5b42fa25c..2582b13514a 100755 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -403,27 +403,26 @@ impl VirtualMethods for HTMLTextAreaElement { KeyReaction::DispatchInput => { self.value_changed.set(true); self.update_placeholder_shown_state(); - - if event.IsTrusted() { - let window = window_from_node(self); - let _ = window.user_interaction_task_source().queue_event( - &self.upcast(), - atom!("input"), - EventBubbles::Bubbles, - EventCancelable::NotCancelable, - &window); - } - self.upcast::<Node>().dirty(NodeDamage::OtherNodeDamage); - event.PreventDefault(); + event.mark_as_handled(); } KeyReaction::RedrawSelection => { self.upcast::<Node>().dirty(NodeDamage::OtherNodeDamage); - event.PreventDefault(); + event.mark_as_handled(); } KeyReaction::Nothing => (), } } + } else if event.type_() == atom!("keypress") && !event.DefaultPrevented() { + if event.IsTrusted() { + let window = window_from_node(self); + let _ = window.user_interaction_task_source() + .queue_event(&self.upcast(), + atom!("input"), + EventBubbles::Bubbles, + EventCancelable::NotCancelable, + &window); + } } } } |