summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-13 03:07:52 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-09-13 03:10:40 +0200
commit94c8b9639ca2d287c504345390585b80dc0d78cf (patch)
tree1aa834c349a5646fd9920d13af0457b5dc7b0a84
parentcbe91d4a7cc6ef105747884425a3f12e00247856 (diff)
downloadiced-94c8b9639ca2d287c504345390585b80dc0d78cf.tar.gz
iced-94c8b9639ca2d287c504345390585b80dc0d78cf.tar.bz2
iced-94c8b9639ca2d287c504345390585b80dc0d78cf.zip
Add `modified_key` to `keyboard::Event`
-rw-r--r--core/src/keyboard/event.rs3
-rw-r--r--winit/src/conversion.rs10
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,