@@ -456,7 +456,7 @@ where
456456 _ => ( ) ,
457457 }
458458
459- if let Some ( key) = translate_virtual_key_code ( event. code ) {
459+ if let Some ( key) = translate_virtual_key ( & event. key ) {
460460 self . egui_input . events . push ( egui:: Event :: Key {
461461 key,
462462 pressed,
@@ -487,7 +487,6 @@ where
487487 self . egui_input
488488 . events
489489 . push ( egui:: Event :: Text ( written. clone ( ) ) ) ;
490- self . egui_ctx . wants_keyboard_input ( ) ;
491490 }
492491 }
493492 }
@@ -535,66 +534,72 @@ pub fn translate_mouse_button(button: baseview::MouseButton) -> Option<egui::Poi
535534 }
536535}
537536
538- pub fn translate_virtual_key_code ( key : keyboard_types:: Code ) -> Option < egui:: Key > {
537+ pub fn translate_virtual_key ( key : & keyboard_types:: Key ) -> Option < egui:: Key > {
538+ use keyboard_types:: Key as K ;
539539 use egui:: Key ;
540- use keyboard_types:: Code ;
541540
542541 Some ( match key {
543- Code :: ArrowDown => Key :: ArrowDown ,
544- Code :: ArrowLeft => Key :: ArrowLeft ,
545- Code :: ArrowRight => Key :: ArrowRight ,
546- Code :: ArrowUp => Key :: ArrowUp ,
547-
548- Code :: Escape => Key :: Escape ,
549- Code :: Tab => Key :: Tab ,
550- Code :: Backspace => Key :: Backspace ,
551- Code :: Enter => Key :: Enter ,
552- Code :: Space => Key :: Space ,
553-
554- Code :: Insert => Key :: Insert ,
555- Code :: Delete => Key :: Delete ,
556- Code :: Home => Key :: Home ,
557- Code :: End => Key :: End ,
558- Code :: PageUp => Key :: PageUp ,
559- Code :: PageDown => Key :: PageDown ,
560-
561- Code :: Digit0 | Code :: Numpad0 => Key :: Num0 ,
562- Code :: Digit1 | Code :: Numpad1 => Key :: Num1 ,
563- Code :: Digit2 | Code :: Numpad2 => Key :: Num2 ,
564- Code :: Digit3 | Code :: Numpad3 => Key :: Num3 ,
565- Code :: Digit4 | Code :: Numpad4 => Key :: Num4 ,
566- Code :: Digit5 | Code :: Numpad5 => Key :: Num5 ,
567- Code :: Digit6 | Code :: Numpad6 => Key :: Num6 ,
568- Code :: Digit7 | Code :: Numpad7 => Key :: Num7 ,
569- Code :: Digit8 | Code :: Numpad8 => Key :: Num8 ,
570- Code :: Digit9 | Code :: Numpad9 => Key :: Num9 ,
571-
572- Code :: KeyA => Key :: A ,
573- Code :: KeyB => Key :: B ,
574- Code :: KeyC => Key :: C ,
575- Code :: KeyD => Key :: D ,
576- Code :: KeyE => Key :: E ,
577- Code :: KeyF => Key :: F ,
578- Code :: KeyG => Key :: G ,
579- Code :: KeyH => Key :: H ,
580- Code :: KeyI => Key :: I ,
581- Code :: KeyJ => Key :: J ,
582- Code :: KeyK => Key :: K ,
583- Code :: KeyL => Key :: L ,
584- Code :: KeyM => Key :: M ,
585- Code :: KeyN => Key :: N ,
586- Code :: KeyO => Key :: O ,
587- Code :: KeyP => Key :: P ,
588- Code :: KeyQ => Key :: Q ,
589- Code :: KeyR => Key :: R ,
590- Code :: KeyS => Key :: S ,
591- Code :: KeyT => Key :: T ,
592- Code :: KeyU => Key :: U ,
593- Code :: KeyV => Key :: V ,
594- Code :: KeyW => Key :: W ,
595- Code :: KeyX => Key :: X ,
596- Code :: KeyY => Key :: Y ,
597- Code :: KeyZ => Key :: Z ,
542+ K :: ArrowDown => Key :: ArrowDown ,
543+ K :: ArrowLeft => Key :: ArrowLeft ,
544+ K :: ArrowRight => Key :: ArrowRight ,
545+ K :: ArrowUp => Key :: ArrowUp ,
546+
547+ K :: Escape => Key :: Escape ,
548+ K :: Tab => Key :: Tab ,
549+ K :: Backspace => Key :: Backspace ,
550+ K :: Enter => Key :: Enter ,
551+
552+ K :: Insert => Key :: Insert ,
553+ K :: Delete => Key :: Delete ,
554+ K :: Home => Key :: Home ,
555+ K :: End => Key :: End ,
556+ K :: PageUp => Key :: PageUp ,
557+ K :: PageDown => Key :: PageDown ,
558+
559+ K :: Character ( s) => {
560+ match s. chars ( ) . next ( ) ? {
561+ ' ' => Key :: Space ,
562+ '0' => Key :: Num0 ,
563+ '1' => Key :: Num1 ,
564+ '2' => Key :: Num2 ,
565+ '3' => Key :: Num3 ,
566+ '4' => Key :: Num4 ,
567+ '5' => Key :: Num5 ,
568+ '6' => Key :: Num6 ,
569+ '7' => Key :: Num7 ,
570+ '8' => Key :: Num8 ,
571+ '9' => Key :: Num9 ,
572+ 'a' => Key :: A ,
573+ 'b' => Key :: B ,
574+ 'c' => Key :: C ,
575+ 'd' => Key :: D ,
576+ 'e' => Key :: E ,
577+ 'f' => Key :: F ,
578+ 'g' => Key :: G ,
579+ 'h' => Key :: H ,
580+ 'i' => Key :: I ,
581+ 'j' => Key :: J ,
582+ 'k' => Key :: K ,
583+ 'l' => Key :: L ,
584+ 'm' => Key :: M ,
585+ 'n' => Key :: N ,
586+ 'o' => Key :: O ,
587+ 'p' => Key :: P ,
588+ 'q' => Key :: Q ,
589+ 'r' => Key :: R ,
590+ 's' => Key :: S ,
591+ 't' => Key :: T ,
592+ 'u' => Key :: U ,
593+ 'v' => Key :: V ,
594+ 'w' => Key :: W ,
595+ 'x' => Key :: X ,
596+ 'y' => Key :: Y ,
597+ 'z' => Key :: Z ,
598+ _ => {
599+ return None ;
600+ }
601+ }
602+ }
598603 _ => {
599604 return None ;
600605 }
0 commit comments