diff options
Diffstat (limited to 'native/src/input/keyboard')
| -rw-r--r-- | native/src/input/keyboard/event.rs | 7 | ||||
| -rw-r--r-- | native/src/input/keyboard/modifiers_state.rs | 15 | 
2 files changed, 20 insertions, 2 deletions
diff --git a/native/src/input/keyboard/event.rs b/native/src/input/keyboard/event.rs index 8118f112..862f30c4 100644 --- a/native/src/input/keyboard/event.rs +++ b/native/src/input/keyboard/event.rs @@ -1,13 +1,13 @@ -use super::KeyCode; +use super::{KeyCode, ModifiersState};  use crate::input::ButtonState; -#[derive(Debug, Clone, Copy, PartialEq)]  /// A keyboard event.  ///  /// _**Note:** This type is largely incomplete! If you need to track  /// additional events, feel free to [open an issue] and share your use case!_  ///  /// [open an issue]: https://github.com/hecrj/iced/issues +#[derive(Debug, Clone, Copy, PartialEq)]  pub enum Event {      /// A keyboard key was pressed or released.      Input { @@ -16,6 +16,9 @@ pub enum Event {          /// The key identifier          key_code: KeyCode, + +        /// The state of the modifier keys +        modifiers: ModifiersState,      },      /// A unicode character was received. diff --git a/native/src/input/keyboard/modifiers_state.rs b/native/src/input/keyboard/modifiers_state.rs new file mode 100644 index 00000000..4e3794b3 --- /dev/null +++ b/native/src/input/keyboard/modifiers_state.rs @@ -0,0 +1,15 @@ +/// The current state of the keyboard modifiers. +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct ModifiersState { +    /// Whether a shift key is pressed +    pub shift: bool, + +    /// Whether a control key is pressed +    pub control: bool, + +    /// Whether an alt key is pressed +    pub alt: bool, + +    /// Whether a logo key is pressed (e.g. windows key, command key...) +    pub logo: bool, +}  | 
