diff options
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r-- | components/script/dom/document.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 0efb0856098..b2a6468bd90 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -1436,7 +1436,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 @@ -2517,6 +2518,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, |