From b30fc2d19ea672e2c7f50d198b29838544b7c000 Mon Sep 17 00:00:00 2001 From: takumi Date: Sun, 3 Nov 2019 18:07:17 +0900 Subject: [PATCH] Solve #22346 keypress event should be triggered for keys representing character values. So, we should trigger this event for enter key. This event should not trigger for IME inputs. --- components/script/dom/document.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index fd5994925c1..fee67ec5e3b 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -1435,7 +1435,8 @@ impl Document { // https://w3c.github.io/uievents/#keys-cancelable-keys if keyboard_event.state == KeyState::Down && - keyboard_event.key.legacy_charcode() != 0 && + is_character_value_key(&(keyboard_event.key)) && + !keyboard_event.is_composing && cancel_state != EventDefault::Prevented { // https://w3c.github.io/uievents/#keypress-event-order @@ -2505,6 +2506,13 @@ impl Document { } } +fn is_character_value_key(key: &Key) -> bool { + match key { + Key::Character(_) | Key::Enter => true, + _ => false, + } +} + #[derive(MallocSizeOf, PartialEq)] pub enum DocumentSource { FromParser,