From 82a7554be13343bb00d825dd1ef92429d1fff4d9 Mon Sep 17 00:00:00 2001 From: chiehw Date: Sun, 26 Mar 2023 07:52:05 +0800 Subject: [PATCH] Send key instead of char in numpad --- src/keyboard.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/keyboard.rs b/src/keyboard.rs index dd0fae615..b82290605 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -892,6 +892,15 @@ fn is_press(event: &Event) -> bool { matches!(event.event_type, EventType::KeyPress(_)) } +fn is_numpad_key(event: &Event) -> bool { + matches!(event.event_type, EventType::KeyPress(key) | EventType::KeyRelease(key) if match key { + Key::Kp0 | Key::Kp1 | Key::Kp2 | Key::Kp3| Key::Kp4| Key::Kp5| Key::Kp6| + Key::Kp7| Key::Kp8| Key::Kp9 | Key::KpMinus | Key::KpMultiply | + Key::KpDivide | Key::KpPlus | Key::KpDecimal => true, + _ => false + }) +} + pub fn translate_keyboard_mode(peer: &str, event: &Event, key_event: KeyEvent) -> Vec { let mut events: Vec = Vec::new(); if let Some(unicode_info) = &event.unicode { @@ -907,6 +916,12 @@ pub fn translate_keyboard_mode(peer: &str, event: &Event, key_event: KeyEvent) - return events; } } + if is_numpad_key(&event) { + if let Some(evt) = translate_key_code(peer, event, key_event) { + events.push(evt); + } + return events; + } #[cfg(target_os = "macos")] // ignore right option key