From 56234ed27e52a901cd89c8b0f935da0f435110ff Mon Sep 17 00:00:00 2001 From: temportalflux Date: Sun, 21 Jun 2026 14:23:22 -0400 Subject: [PATCH] fix caret not moving while typing --- crates/gpui_elements/src/editable_text/input_state.rs | 1 + crates/gpui_elements/src/editable_text/shared_state.rs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/crates/gpui_elements/src/editable_text/input_state.rs b/crates/gpui_elements/src/editable_text/input_state.rs index a901549e27..3269d76439 100644 --- a/crates/gpui_elements/src/editable_text/input_state.rs +++ b/crates/gpui_elements/src/editable_text/input_state.rs @@ -90,6 +90,7 @@ impl EntityInputHandler for TextInputState { cx: &mut Context, ) { let range_utf8 = self.internal.ime_resolve_range(range_utf16); + println!("{range_utf8:?} {text_to_insert:?}"); self.internal .replace_text_in_range_bytes(range_utf8, text_to_insert, cx); //self.mark_layout_dirty(); diff --git a/crates/gpui_elements/src/editable_text/shared_state.rs b/crates/gpui_elements/src/editable_text/shared_state.rs index 044c72de79..80d8200b35 100644 --- a/crates/gpui_elements/src/editable_text/shared_state.rs +++ b/crates/gpui_elements/src/editable_text/shared_state.rs @@ -387,8 +387,11 @@ impl TextInputStateBase { text_to_insert = &text_to_insert[..text_to_insert.len().min(room)]; } + let end_pos = range.start + text_to_insert.len(); + self.emit_change_for_undo(cx, range.clone(), text_to_insert.len()); self.storage.replace_range(range, text_to_insert); + self.selected_range = end_pos..end_pos; self.marked_range = None; }