From fcdf53afdee9cd12bf2e01c5f6e572859b9a3f96 Mon Sep 17 00:00:00 2001 From: rhysd Date: Thu, 6 Feb 2025 01:50:25 +0900 Subject: Set correct text size for text in preedit window --- widget/src/text_editor.rs | 12 ++++++++---- widget/src/text_input.rs | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'widget') diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index e685256b..df42d601 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -753,14 +753,18 @@ where } Update::InputMethod(update) => match update { Ime::Toggle(is_open) => { - state.preedit = - is_open.then(input_method::Preedit::new); + state.preedit = is_open.then(|| { + input_method::Preedit::new(self.text_size) + }); shell.request_redraw(); } Ime::Preedit { content, selection } => { - state.preedit = - Some(input_method::Preedit { content, selection }); + state.preedit = Some(input_method::Preedit { + content, + selection, + text_size: self.text_size, + }); shell.request_redraw(); } diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index 7be5bbd9..de957e14 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -1262,7 +1262,7 @@ where state.is_ime_open = matches!(event, input_method::Event::Opened) - .then(input_method::Preedit::new); + .then(|| input_method::Preedit::new(self.size)); shell.request_redraw(); } @@ -1273,6 +1273,7 @@ where state.is_ime_open = Some(input_method::Preedit { content: content.to_owned(), selection: selection.clone(), + text_size: self.size, }); shell.request_redraw(); -- cgit From cf851e133ad6aaedaf07b58c68e7c41d41ee151a Mon Sep 17 00:00:00 2001 From: rhysd Date: Thu, 6 Feb 2025 09:57:01 +0900 Subject: Do not pass text size to `Preedit::new` --- widget/src/text_editor.rs | 4 +++- widget/src/text_input.rs | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'widget') 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(); } -- cgit From 7199ed0d079de5584ec0e7c8c5e8ff88cc1453e8 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 12 Feb 2025 07:26:26 +0100 Subject: Use default size for empty pre-edits --- widget/src/text_editor.rs | 7 ++----- widget/src/text_input.rs | 9 ++------- 2 files changed, 4 insertions(+), 12 deletions(-) (limited to 'widget') diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index ac458951..ce5da9ef 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -753,11 +753,8 @@ where } Update::InputMethod(update) => match update { Ime::Toggle(is_open) => { - state.preedit = is_open.then(|| { - let mut preedit = input_method::Preedit::new(); - preedit.text_size = self.text_size; - preedit - }); + state.preedit = + is_open.then(input_method::Preedit::new); shell.request_redraw(); } diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index 6d317490..37691e73 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -1261,13 +1261,8 @@ where let state = state::(tree); state.is_ime_open = - matches!(event, input_method::Event::Opened).then( - || { - let mut preedit = input_method::Preedit::new(); - preedit.text_size = self.size; - preedit - }, - ); + matches!(event, input_method::Event::Opened) + .then(input_method::Preedit::new); shell.request_redraw(); } -- cgit