From 299e5ed5fc178c656308086451491dd742846f68 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Fri, 19 Sep 2025 17:33:18 +0800 Subject: [PATCH] input: Fix possible IME input crash. (#1264) --- crates/ui/src/input/state.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/ui/src/input/state.rs b/crates/ui/src/input/state.rs index 08131038..a73c363a 100644 --- a/crates/ui/src/input/state.rs +++ b/crates/ui/src/input/state.rs @@ -2253,7 +2253,10 @@ impl EntityInputHandler for InputState { let range = range_utf16 .as_ref() .map(|range_utf16| self.range_from_utf16(range_utf16)) - .or(self.ime_marked_range.map(|range| range.into())) + .or(self.ime_marked_range.map(|range| { + let range = self.range_to_utf16(&(range.start..range.end)); + self.range_from_utf16(&range) + })) .unwrap_or(self.selected_range.into()); let old_text = self.text.clone(); @@ -2309,7 +2312,10 @@ impl EntityInputHandler for InputState { let range = range_utf16 .as_ref() .map(|range_utf16| self.range_from_utf16(range_utf16)) - .or(self.ime_marked_range.map(|range| range.into())) + .or(self.ime_marked_range.map(|range| { + let range = self.range_to_utf16(&(range.start..range.end)); + self.range_from_utf16(&range) + })) .unwrap_or(self.selected_range.into()); let old_text = self.text.clone();