Send key instead of char in numpad

This commit is contained in:
chiehw 2023-03-26 07:52:05 +08:00 committed by asur4s
parent dbe1516096
commit 82a7554be1

View File

@ -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<KeyEvent> {
let mut events: Vec<KeyEvent> = 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