diff --git a/core/src/events.rs b/core/src/events.rs index 59075ed95..4f082b549 100644 --- a/core/src/events.rs +++ b/core/src/events.rs @@ -142,13 +142,25 @@ impl ClipEvent { pub enum KeyCode { Unknown = 0, Backspace = 8, + Tab = 9, Return = 13, Shift = 16, Control = 17, Alt = 18, + Pause = 19, CapsLock = 20, Escape = 27, Space = 32, + PgUp = 33, + PgDown = 34, + End = 35, + Home = 36, + Left = 37, + Up = 38, + Right = 39, + Down = 40, + Insert = 45, + Delete = 46, Key0 = 48, Key1 = 49, Key2 = 50, @@ -185,17 +197,6 @@ pub enum KeyCode { X = 88, Y = 89, Z = 90, - Semicolon = 186, - Equals = 187, - Comma = 188, - Minus = 189, - Period = 190, - Slash = 191, - Grave = 192, - LBracket = 219, - Backslash = 220, - RBracket = 221, - Apostrophe = 222, Numpad0 = 96, Numpad1 = 97, Numpad2 = 98, @@ -211,18 +212,6 @@ pub enum KeyCode { NumpadMinus = 109, NumpadPeriod = 110, NumpadSlash = 111, - PgUp = 33, - PgDown = 34, - End = 35, - Home = 36, - Left = 37, - Up = 38, - Right = 39, - Down = 40, - Insert = 45, - Delete = 46, - Pause = 19, - ScrollLock = 145, F1 = 112, F2 = 113, F3 = 114, @@ -235,6 +224,18 @@ pub enum KeyCode { F10 = 121, F11 = 122, F12 = 123, + ScrollLock = 145, + Semicolon = 186, + Equals = 187, + Comma = 188, + Minus = 189, + Period = 190, + Slash = 191, + Grave = 192, + LBracket = 219, + Backslash = 220, + RBracket = 221, + Apostrophe = 222, } /// Key codes for SWF4 keyPress button handlers. These are annoyingly different than @@ -372,6 +373,7 @@ pub fn key_code_to_button_key_code(key_code: KeyCode) -> Option { KeyCode::PgUp => ButtonKeyCode::PgUp, KeyCode::PgDown => ButtonKeyCode::PgDown, KeyCode::Escape => ButtonKeyCode::Escape, + KeyCode::Tab => ButtonKeyCode::Tab, _ => return None, }; Some(out) diff --git a/desktop/src/ui.rs b/desktop/src/ui.rs index cdaaf141b..b94daafb4 100644 --- a/desktop/src/ui.rs +++ b/desktop/src/ui.rs @@ -82,6 +82,7 @@ impl UiBackend for DesktopUiBackend { match key { KeyCode::Unknown => false, KeyCode::Backspace => self.keys_down.contains(&VirtualKeyCode::Back), + KeyCode::Tab => self.keys_down.contains(&VirtualKeyCode::Tab), KeyCode::Return => self.keys_down.contains(&VirtualKeyCode::Return), KeyCode::Shift => { self.keys_down.contains(&VirtualKeyCode::LShift) @@ -241,6 +242,7 @@ impl UiBackend for DesktopUiBackend { fn winit_to_ruffle_key_code(key_code: VirtualKeyCode) -> Option { Some(match key_code { VirtualKeyCode::Back => KeyCode::Backspace, + VirtualKeyCode::Tab => KeyCode::Tab, VirtualKeyCode::Return => KeyCode::Return, VirtualKeyCode::LShift | VirtualKeyCode::RShift => KeyCode::Shift, VirtualKeyCode::LControl | VirtualKeyCode::RControl => KeyCode::Control, @@ -357,7 +359,6 @@ fn winit_key_to_char(key_code: VirtualKeyCode, is_shift_down: bool) -> Option '7', (VirtualKeyCode::Key8, _) => '8', (VirtualKeyCode::Key9, _) => '9', - (VirtualKeyCode::A, false) => 'a', (VirtualKeyCode::A, true) => 'A', (VirtualKeyCode::B, false) => 'b', diff --git a/web/src/ui.rs b/web/src/ui.rs index 88bb74218..abc23da83 100644 --- a/web/src/ui.rs +++ b/web/src/ui.rs @@ -69,6 +69,7 @@ impl UiBackend for WebUiBackend { match key { KeyCode::Unknown => false, KeyCode::Backspace => self.keys_down.contains("Backspace"), + KeyCode::Tab => self.keys_down.contains("Tab"), KeyCode::Return => self.keys_down.contains("Enter"), KeyCode::Shift => { self.keys_down.contains("ShiftLeft") || self.keys_down.contains("ShiftRight") @@ -215,6 +216,7 @@ impl UiBackend for WebUiBackend { pub fn web_to_ruffle_key_code(key_code: &str) -> Option { Some(match key_code { "Backspace" => KeyCode::Backspace, + "Tab" => KeyCode::Tab, "Enter" => KeyCode::Return, "ShiftLeft" | "ShiftRight" => KeyCode::Shift, "ControlLeft" | "ControlRight" => KeyCode::Control,