diff --git a/core/src/input_method.rs b/core/src/input_method.rs index ab00b5af..9c83b083 100644 --- a/core/src/input_method.rs +++ b/core/src/input_method.rs @@ -40,14 +40,11 @@ pub struct Preedit { impl Preedit { /// Creates a new empty [`Preedit`]. - pub fn new(text_size: Option>) -> Self + pub fn new() -> Self where T: Default, { - Self { - text_size: text_size.map(Into::into), - ..Default::default() - } + Self::default() } /// Turns a [`Preedit`] into its owned version. diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index df42d601..ac458951 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -754,7 +754,9 @@ where Update::InputMethod(update) => match update { Ime::Toggle(is_open) => { state.preedit = is_open.then(|| { - input_method::Preedit::new(self.text_size) + let mut preedit = input_method::Preedit::new(); + preedit.text_size = self.text_size; + preedit }); shell.request_redraw(); diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index de957e14..6d317490 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -1261,8 +1261,13 @@ where let state = state::(tree); state.is_ime_open = - matches!(event, input_method::Event::Opened) - .then(|| input_method::Preedit::new(self.size)); + matches!(event, input_method::Event::Opened).then( + || { + let mut preedit = input_method::Preedit::new(); + preedit.text_size = self.size; + preedit + }, + ); shell.request_redraw(); }