diff options
author | 2024-09-13 03:07:52 +0200 | |
---|---|---|
committer | 2024-09-13 03:10:40 +0200 | |
commit | 94c8b9639ca2d287c504345390585b80dc0d78cf (patch) | |
tree | 1aa834c349a5646fd9920d13af0457b5dc7b0a84 | |
parent | cbe91d4a7cc6ef105747884425a3f12e00247856 (diff) | |
download | iced-94c8b9639ca2d287c504345390585b80dc0d78cf.tar.gz iced-94c8b9639ca2d287c504345390585b80dc0d78cf.tar.bz2 iced-94c8b9639ca2d287c504345390585b80dc0d78cf.zip |
Add `modified_key` to `keyboard::Event`
-rw-r--r-- | core/src/keyboard/event.rs | 3 | ||||
-rw-r--r-- | winit/src/conversion.rs | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/core/src/keyboard/event.rs b/core/src/keyboard/event.rs index 09625b18..26c45717 100644 --- a/core/src/keyboard/event.rs +++ b/core/src/keyboard/event.rs @@ -15,6 +15,9 @@ pub enum Event { /// The key pressed. key: Key, + /// The key pressed with all keyboard modifiers applied, except Ctrl. + modified_key: Key, + /// The physical key pressed. physical_key: key::Physical, diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs index 0f336cc7..13b0f15b 100644 --- a/winit/src/conversion.rs +++ b/winit/src/conversion.rs @@ -192,7 +192,7 @@ pub fn window_event( } }, WindowEvent::KeyboardInput { event, .. } => Some(Event::Keyboard({ - let logical_key = { + let key = { #[cfg(not(target_arch = "wasm32"))] { use winit::platform::modifier_supplement::KeyEventExtModifierSupplement; @@ -202,7 +202,7 @@ pub fn window_event( #[cfg(target_arch = "wasm32")] { // TODO: Fix inconsistent API on Wasm - event.logical_key + event.logical_key.clone() } }; @@ -225,10 +225,13 @@ pub fn window_event( let winit::event::KeyEvent { state, location, + logical_key, physical_key, .. } = event; - let key = key(logical_key); + + let key = self::key(key); + let modified_key = self::key(logical_key); let physical_key = self::physical_key(physical_key); let modifiers = self::modifiers(modifiers); @@ -249,6 +252,7 @@ pub fn window_event( winit::event::ElementState::Pressed => { keyboard::Event::KeyPressed { key, + modified_key, physical_key, modifiers, location, |