From 01a13fd664a526bcdbc887741f19b457f41ecefb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E9=9B=85=20=C2=B7=20Misaki=20Masa?= Date: Fri, 2 May 2025 02:35:19 +0800 Subject: [PATCH] fix: reset the cursor position with `arrow()` after deleting files (#2708) --- yazi-core/src/tab/folder.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/yazi-core/src/tab/folder.rs b/yazi-core/src/tab/folder.rs index 12d2de04..8ffa6497 100644 --- a/yazi-core/src/tab/folder.rs +++ b/yazi-core/src/tab/folder.rs @@ -70,7 +70,8 @@ impl Folder { FilesOp::Creating(_, files) => self.files.update_creating(files), FilesOp::Deleting(_, urns) => { let deleted = self.files.update_deleting(urns); - self.cursor -= deleted.into_iter().filter(|&i| i < self.cursor).count(); + let delta = deleted.into_iter().filter(|&i| i < self.cursor).count() as isize; + self.arrow(-delta); } FilesOp::Updating(_, files) => _ = self.files.update_updating(files), FilesOp::Upserting(_, files) => self.files.update_upserting(files),