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();