summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-11-10 21:18:21 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-11-10 21:18:21 +0100
commit86fa12229e7117306b8297a09aa22c99802600c8 (patch)
tree65995b4304543ea6a6400af3c8e11eae630dd22b /core
parent3b2ed0d6f02ecacafd19a8cba7a5e54a54b163a0 (diff)
downloadiced-86fa12229e7117306b8297a09aa22c99802600c8.tar.gz
iced-86fa12229e7117306b8297a09aa22c99802600c8.tar.bz2
iced-86fa12229e7117306b8297a09aa22c99802600c8.zip
Introduce `is_command_pressed` to `ModifiersState`
Diffstat (limited to 'core')
-rw-r--r--core/src/keyboard/modifiers_state.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/core/src/keyboard/modifiers_state.rs b/core/src/keyboard/modifiers_state.rs
index 4d24266f..254013c3 100644
--- a/core/src/keyboard/modifiers_state.rs
+++ b/core/src/keyboard/modifiers_state.rs
@@ -15,6 +15,26 @@ pub struct ModifiersState {
}
impl ModifiersState {
+ /// Returns true if the current [`ModifiersState`] has a "command key"
+ /// pressed.
+ ///
+ /// The "command key" is the main modifier key used to issue commands in the
+ /// current platform. Specifically:
+ ///
+ /// - It is the `logo` or command key (⌘) on macOS
+ /// - It is the `control` key on other platforms
+ ///
+ /// [`ModifiersState`]: struct.ModifiersState.html
+ pub fn is_command_pressed(self) -> bool {
+ #[cfg(target_os = "macos")]
+ let is_pressed = self.logo;
+
+ #[cfg(not(target_os = "macos"))]
+ let is_pressed = self.control;
+
+ is_pressed
+ }
+
/// Returns true if the current [`ModifiersState`] has at least the same
/// modifiers enabled as the given value, and false otherwise.
///