diff options
author | 2025-02-02 21:06:50 +0100 | |
---|---|---|
committer | 2025-02-02 21:06:50 +0100 | |
commit | db990b77e4aa8d001c774703301342c951d6caaa (patch) | |
tree | 5fe6d046fa17c0a99438fbde7b8e748c8941afca /core | |
parent | ae10adda74320e8098bfeb401f12a278e1e7b3e2 (diff) | |
download | iced-db990b77e4aa8d001c774703301342c951d6caaa.tar.gz iced-db990b77e4aa8d001c774703301342c951d6caaa.tar.bz2 iced-db990b77e4aa8d001c774703301342c951d6caaa.zip |
Add neutral `None` variant to `InputMethod`
Diffstat (limited to 'core')
-rw-r--r-- | core/src/input_method.rs | 13 | ||||
-rw-r--r-- | core/src/shell.rs | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/core/src/input_method.rs b/core/src/input_method.rs index c293582d..b25f29aa 100644 --- a/core/src/input_method.rs +++ b/core/src/input_method.rs @@ -6,6 +6,8 @@ use std::ops::Range; /// The input method strategy of a widget. #[derive(Debug, Clone, PartialEq)] pub enum InputMethod<T = String> { + /// No input method strategy has been specified. + None, /// No input method is allowed. Disabled, /// Input methods are allowed, but not open yet. @@ -73,7 +75,7 @@ impl InputMethod { /// ``` pub fn merge<T: AsRef<str>>(&mut self, other: &InputMethod<T>) { match other { - InputMethod::Disabled => {} + InputMethod::None => {} InputMethod::Open { position, purpose, @@ -88,10 +90,15 @@ impl InputMethod { .map(str::to_owned), }; } - InputMethod::Allowed if matches!(self, Self::Disabled) => { + InputMethod::Allowed + if matches!(self, Self::None | Self::Disabled) => + { *self = Self::Allowed; } - InputMethod::Allowed => {} + InputMethod::Disabled if matches!(self, Self::None) => { + *self = Self::Disabled; + } + _ => {} } } } diff --git a/core/src/shell.rs b/core/src/shell.rs index e87d1696..d01233c7 100644 --- a/core/src/shell.rs +++ b/core/src/shell.rs @@ -27,7 +27,7 @@ impl<'a, Message> Shell<'a, Message> { redraw_request: window::RedrawRequest::Wait, is_layout_invalid: false, are_widgets_invalid: false, - input_method: InputMethod::Disabled, + input_method: InputMethod::None, } } |