Add neutral None variant to InputMethod
This commit is contained in:
parent
ae10adda74
commit
db990b77e4
4 changed files with 19 additions and 9 deletions
|
|
@ -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;
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue