Skip to content

Commit a9bb13b

Browse files
authored
improv: support keypad and uncommon keys (#1274)
1 parent d448b4c commit a9bb13b

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

crates/rnote-ui/src/canvas/input.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,23 +470,36 @@ pub(crate) fn retrieve_keyboard_key(gdk_key: gdk::Key) -> KeyboardKey {
470470
if let Some(keychar) = gdk_key.to_unicode() {
471471
KeyboardKey::Unicode(keychar).filter_convert_unicode_control_chars()
472472
} else {
473+
// Mapping based on https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values
473474
match gdk_key {
474475
gdk::Key::BackSpace => KeyboardKey::BackSpace,
475476
gdk::Key::Tab => KeyboardKey::HorizontalTab,
477+
gdk::Key::KP_Tab => KeyboardKey::HorizontalTab,
478+
gdk::Key::ISO_Left_Tab => KeyboardKey::HorizontalTab,
476479
gdk::Key::Linefeed => KeyboardKey::Linefeed,
477480
gdk::Key::Return => KeyboardKey::CarriageReturn,
481+
gdk::Key::KP_Enter => KeyboardKey::CarriageReturn,
482+
gdk::Key::ISO_Enter => KeyboardKey::CarriageReturn,
483+
gdk::Key::_3270_Enter => KeyboardKey::CarriageReturn,
478484
gdk::Key::Escape => KeyboardKey::Escape,
479485
gdk::Key::Delete => KeyboardKey::Delete,
486+
gdk::Key::KP_Delete => KeyboardKey::Delete,
480487
gdk::Key::Down => KeyboardKey::NavDown,
488+
gdk::Key::KP_Down => KeyboardKey::NavDown,
481489
gdk::Key::Up => KeyboardKey::NavUp,
490+
gdk::Key::KP_Up => KeyboardKey::NavUp,
482491
gdk::Key::Left => KeyboardKey::NavLeft,
492+
gdk::Key::KP_Left => KeyboardKey::NavLeft,
483493
gdk::Key::Right => KeyboardKey::NavRight,
494+
gdk::Key::KP_Right => KeyboardKey::NavRight,
484495
gdk::Key::Shift_L => KeyboardKey::ShiftLeft,
485496
gdk::Key::Shift_R => KeyboardKey::ShiftRight,
486497
gdk::Key::Control_L => KeyboardKey::CtrlLeft,
487498
gdk::Key::Control_R => KeyboardKey::CtrlRight,
488499
gdk::Key::Home => KeyboardKey::Home,
500+
gdk::Key::KP_Home => KeyboardKey::Home,
489501
gdk::Key::End => KeyboardKey::End,
502+
gdk::Key::KP_End => KeyboardKey::End,
490503
_ => KeyboardKey::Unsupported,
491504
}
492505
}

0 commit comments

Comments
 (0)