diff options
Diffstat (limited to 'widget/src/text_editor.rs')
| -rw-r--r-- | widget/src/text_editor.rs | 26 | 
1 files changed, 11 insertions, 15 deletions
| diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index 7c0b98ea..41b058af 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -768,9 +768,17 @@ impl Update {                      if let keyboard::Key::Named(named_key) = key.as_ref() {                          if let Some(motion) = motion(named_key) { -                            let motion = if platform::is_jump_modifier_pressed( -                                modifiers, -                            ) { +                            let motion = if modifiers.macos_command() { +                                match motion { +                                    Motion::Left => Motion::Home, +                                    Motion::Right => Motion::End, +                                    _ => motion, +                                } +                            } else { +                                motion +                            }; + +                            let motion = if modifiers.jump() {                                  motion.widen()                              } else {                                  motion @@ -807,18 +815,6 @@ fn motion(key: key::Named) -> Option<Motion> {      }  } -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() -        } -    } -} -  /// The possible status of a [`TextEditor`].  #[derive(Debug, Clone, Copy, PartialEq, Eq)]  pub enum Status { | 
