summaryrefslogtreecommitdiffstats
path: root/winit/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-08 06:53:54 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-12-08 06:53:54 +0100
commit9b84b6e40336543380312aa1b2b1091791ec25cd (patch)
treec14ed67cfc38e1a22617716c361e4684a64e7fac /winit/src
parent48145ba51e045f8b0b4788f3a75d20b9d9b7e6ad (diff)
parentf942fc3b68ecbbe136c54922109c7e2e4732735b (diff)
downloadiced-9b84b6e40336543380312aa1b2b1091791ec25cd.tar.gz
iced-9b84b6e40336543380312aa1b2b1091791ec25cd.tar.bz2
iced-9b84b6e40336543380312aa1b2b1091791ec25cd.zip
Merge branch 'master' into feature/event-subscriptions
Diffstat (limited to 'winit/src')
-rw-r--r--winit/src/application.rs2
-rw-r--r--winit/src/conversion.rs20
2 files changed, 21 insertions, 1 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs
index 62970810..26ebdb05 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -334,6 +334,7 @@ pub trait Application: Sized {
winit::event::KeyboardInput {
virtual_keycode: Some(virtual_keycode),
state,
+ modifiers,
..
},
..
@@ -349,6 +350,7 @@ pub trait Application: Sized {
events.push(Event::Keyboard(keyboard::Event::Input {
key_code: conversion::key_code(virtual_keycode),
state: conversion::button_state(state),
+ modifiers: conversion::modifiers_state(modifiers),
}));
}
WindowEvent::CloseRequested => {
diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs
index 03d583fb..0537d853 100644
--- a/winit/src/conversion.rs
+++ b/winit/src/conversion.rs
@@ -3,7 +3,10 @@
//! [`winit`]: https://github.com/rust-windowing/winit
//! [`iced_native`]: https://github.com/hecrj/iced/tree/master/native
use crate::{
- input::{keyboard::KeyCode, mouse, ButtonState},
+ input::{
+ keyboard::{KeyCode, ModifiersState},
+ mouse, ButtonState,
+ },
MouseCursor,
};
@@ -47,6 +50,21 @@ pub fn button_state(element_state: winit::event::ElementState) -> ButtonState {
}
}
+/// Convert some `ModifiersState` from [`winit`] to an [`iced_native`] modifiers state.
+///
+/// [`winit`]: https://github.com/rust-windowing/winit
+/// [`iced_native`]: https://github.com/hecrj/iced/tree/master/native
+pub fn modifiers_state(
+ modifiers: winit::event::ModifiersState,
+) -> ModifiersState {
+ ModifiersState {
+ shift: modifiers.shift,
+ control: modifiers.ctrl,
+ alt: modifiers.alt,
+ logo: modifiers.logo,
+ }
+}
+
/// Convert a `VirtualKeyCode` from [`winit`] to an [`iced_native`] key code.
///
/// [`winit`]: https://github.com/rust-windowing/winit