summaryrefslogtreecommitdiffstats
path: root/native/src/input
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2019-12-06 20:42:25 +0100
committerLibravatar GitHub <noreply@github.com>2019-12-06 20:42:25 +0100
commit05a2a619c1c44a44f5ea7aab1446b37141393205 (patch)
tree2bfd9f42709a876afa6545f670f92b1fc8e6cbdf /native/src/input
parente92ea48e8814b42fc566017db085ca9bdaf3c272 (diff)
parent4268556edbf7616fe65aca178b9029ed7db61b07 (diff)
downloadiced-05a2a619c1c44a44f5ea7aab1446b37141393205.tar.gz
iced-05a2a619c1c44a44f5ea7aab1446b37141393205.tar.bz2
iced-05a2a619c1c44a44f5ea7aab1446b37141393205.zip
Merge pull request #108 from hecrj/feature/text-input-behavior
Improve text input behavior
Diffstat (limited to 'native/src/input')
-rw-r--r--native/src/input/keyboard.rs2
-rw-r--r--native/src/input/keyboard/event.rs7
-rw-r--r--native/src/input/keyboard/modifiers_state.rs15
3 files changed, 22 insertions, 2 deletions
diff --git a/native/src/input/keyboard.rs b/native/src/input/keyboard.rs
index 57c24484..432e75ba 100644
--- a/native/src/input/keyboard.rs
+++ b/native/src/input/keyboard.rs
@@ -1,6 +1,8 @@
//! Build keyboard events.
mod event;
mod key_code;
+mod modifiers_state;
pub use event::Event;
pub use key_code::KeyCode;
+pub use modifiers_state::ModifiersState;
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,
+}