From b656b303facdfd79129d0e839d02460851575823 Mon Sep 17 00:00:00 2001 From: Leonard Hecker Date: Tue, 27 May 2025 03:06:29 +0200 Subject: [PATCH] Update the preferred column when writing (#292) --- src/tui.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/tui.rs b/src/tui.rs index ceb6bc6..53e0d3b 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -2141,6 +2141,7 @@ impl<'a> Context<'a, '_> { let mut tb = tc.buffer.borrow_mut(); let tb = &mut *tb; let mut make_cursor_visible = false; + let mut change_preferred_column = false; if self.tui.mouse_state != InputMouseState::None && self.tui.was_mouse_down_on_node(node_prev.id) @@ -2623,9 +2624,7 @@ impl<'a> Context<'a, '_> { _ => return false, } - if !matches!(key, vk::PRIOR | vk::NEXT | vk::UP | vk::DOWN) { - tc.preferred_column = tb.cursor_visual_pos().x; - } + change_preferred_column = !matches!(key, vk::PRIOR | vk::NEXT | vk::UP | vk::DOWN); } else { return false; } @@ -2636,6 +2635,11 @@ impl<'a> Context<'a, '_> { } if !write.is_empty() { tb.write(write, write_raw); + change_preferred_column = true; + } + + if change_preferred_column { + tc.preferred_column = tb.cursor_visual_pos().x; } self.set_input_consumed();