aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/document.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r--components/script/dom/document.rs10
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,