terminal: fix moving selection on history changing

pull/9709/head
Mitchell Hashimoto 2025-11-25 21:51:54 -08:00
parent ad755b0e3d
commit 330ce07d48
No known key found for this signature in database
GPG Key ID: 523D5DC389D273BC
1 changed files with 5 additions and 1 deletions

View File

@ -493,6 +493,10 @@ pub const ScreenSearch = struct {
// in our history (fast path)
if (results.items.len == 0) break :history;
// The number added to our history. Needed for updating
// our selection if we have one.
const added_len = results.items.len;
// Matches! Reverse our list then append all the remaining
// history items that didn't start on our original node.
std.mem.reverse(FlattenedHighlight, results.items);
@ -505,7 +509,7 @@ pub const ScreenSearch = struct {
if (self.selected) |*m| selected: {
const active_len = self.active_results.items.len;
if (m.idx < active_len) break :selected;
m.idx += results.items.len;
m.idx += added_len;
// Moving the idx should not change our targeted result
// since the history is immutable.