diff options
author | 2024-05-31 16:23:09 +0200 | |
---|---|---|
committer | 2024-05-31 16:23:09 +0200 | |
commit | 3312dc808012e2c049fb2f178d51bfe0b4e30399 (patch) | |
tree | 5dbfe97e50662cdaf396427d7793c4f03fc159c6 /widget/src/text_input.rs | |
parent | 8cfa8149f56a0e58eb0257ebb181c69bec5c095f (diff) | |
download | iced-3312dc808012e2c049fb2f178d51bfe0b4e30399.tar.gz iced-3312dc808012e2c049fb2f178d51bfe0b4e30399.tar.bz2 iced-3312dc808012e2c049fb2f178d51bfe0b4e30399.zip |
Create `jump` and `macos_command` methods in `keyboard::Modifiers`
Diffstat (limited to 'widget/src/text_input.rs')
-rw-r--r-- | widget/src/text_input.rs | 45 |
1 files changed, 6 insertions, 39 deletions
diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index 2c951c12..941e9bde 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -826,7 +826,7 @@ where } } keyboard::Key::Named(key::Named::Backspace) => { - if platform::is_jump_modifier_pressed(modifiers) + if modifiers.jump() && state.cursor.selection(&self.value).is_none() { if self.is_secure { @@ -850,7 +850,7 @@ where update_cache(state, &self.value); } keyboard::Key::Named(key::Named::Delete) => { - if platform::is_jump_modifier_pressed(modifiers) + if modifiers.jump() && state.cursor.selection(&self.value).is_none() { if self.is_secure { @@ -897,9 +897,7 @@ where } } keyboard::Key::Named(key::Named::ArrowLeft) - if platform::is_macos_command_pressed( - modifiers, - ) => + if modifiers.macos_command() => { if modifiers.shift() { state.cursor.select_range( @@ -911,9 +909,7 @@ where } } keyboard::Key::Named(key::Named::ArrowRight) - if platform::is_macos_command_pressed( - modifiers, - ) => + if modifiers.macos_command() => { if modifiers.shift() { state.cursor.select_range( @@ -925,9 +921,7 @@ where } } keyboard::Key::Named(key::Named::ArrowLeft) => { - if platform::is_jump_modifier_pressed(modifiers) - && !self.is_secure - { + if modifiers.jump() && !self.is_secure { if modifiers.shift() { state .cursor @@ -944,9 +938,7 @@ where } } keyboard::Key::Named(key::Named::ArrowRight) => { - if platform::is_jump_modifier_pressed(modifiers) - && !self.is_secure - { + if modifiers.jump() && !self.is_secure { if modifiers.shift() { state .cursor @@ -1309,31 +1301,6 @@ impl<P: text::Paragraph> operation::TextInput for State<P> { } } -mod platform { - use crate::core::keyboard; - - pub fn is_jump_modifier_pressed(modifiers: keyboard::Modifiers) -> bool { - if cfg!(target_os = "macos") { - modifiers.alt() - } else { - modifiers.control() - } - } - - /// Whether the command key is pressed on a macOS device. - /// - /// This is relevant for actions like ⌘ + ArrowLeft to move to the beginning of the - /// line where the equivalent behavior for `modifiers.command()` is instead a jump on - /// other platforms. - pub fn is_macos_command_pressed(modifiers: keyboard::Modifiers) -> bool { - if cfg!(target_os = "macos") { - modifiers.logo() - } else { - false - } - } -} - fn offset<P: text::Paragraph>( text_bounds: Rectangle, value: &Value, |