@@ -470,23 +470,36 @@ pub(crate) fn retrieve_keyboard_key(gdk_key: gdk::Key) -> KeyboardKey {
470
470
if let Some ( keychar) = gdk_key. to_unicode ( ) {
471
471
KeyboardKey :: Unicode ( keychar) . filter_convert_unicode_control_chars ( )
472
472
} else {
473
+ // Mapping based on https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values
473
474
match gdk_key {
474
475
gdk:: Key :: BackSpace => KeyboardKey :: BackSpace ,
475
476
gdk:: Key :: Tab => KeyboardKey :: HorizontalTab ,
477
+ gdk:: Key :: KP_Tab => KeyboardKey :: HorizontalTab ,
478
+ gdk:: Key :: ISO_Left_Tab => KeyboardKey :: HorizontalTab ,
476
479
gdk:: Key :: Linefeed => KeyboardKey :: Linefeed ,
477
480
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 ,
478
484
gdk:: Key :: Escape => KeyboardKey :: Escape ,
479
485
gdk:: Key :: Delete => KeyboardKey :: Delete ,
486
+ gdk:: Key :: KP_Delete => KeyboardKey :: Delete ,
480
487
gdk:: Key :: Down => KeyboardKey :: NavDown ,
488
+ gdk:: Key :: KP_Down => KeyboardKey :: NavDown ,
481
489
gdk:: Key :: Up => KeyboardKey :: NavUp ,
490
+ gdk:: Key :: KP_Up => KeyboardKey :: NavUp ,
482
491
gdk:: Key :: Left => KeyboardKey :: NavLeft ,
492
+ gdk:: Key :: KP_Left => KeyboardKey :: NavLeft ,
483
493
gdk:: Key :: Right => KeyboardKey :: NavRight ,
494
+ gdk:: Key :: KP_Right => KeyboardKey :: NavRight ,
484
495
gdk:: Key :: Shift_L => KeyboardKey :: ShiftLeft ,
485
496
gdk:: Key :: Shift_R => KeyboardKey :: ShiftRight ,
486
497
gdk:: Key :: Control_L => KeyboardKey :: CtrlLeft ,
487
498
gdk:: Key :: Control_R => KeyboardKey :: CtrlRight ,
488
499
gdk:: Key :: Home => KeyboardKey :: Home ,
500
+ gdk:: Key :: KP_Home => KeyboardKey :: Home ,
489
501
gdk:: Key :: End => KeyboardKey :: End ,
502
+ gdk:: Key :: KP_End => KeyboardKey :: End ,
490
503
_ => KeyboardKey :: Unsupported ,
491
504
}
492
505
}
0 commit comments