summaryrefslogtreecommitdiff
path: root/src/app/worktrees.rs
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-08-21 22:42:08 +0300
committerGitHub <noreply@github.com>2026-08-21 22:42:08 +0300
commit25e35f079e5147b52a696e72e87df92108febf93 (patch)
treea1cd3cf8e1ab76c6d8fa7d8523277e3141a9f831 /src/app/worktrees.rs
parent81864e516a55f8cea5490f28e0b93531703cf1ec (diff)
fix: preserve focus after background worktree removal (#3099)
Diffstat (limited to 'src/app/worktrees.rs')
-rw-r--r--src/app/worktrees.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/app/worktrees.rs b/src/app/worktrees.rs
index 0087c8fe..414d74b5 100644
--- a/src/app/worktrees.rs
+++ b/src/app/worktrees.rs
@@ -968,6 +968,7 @@ impl App {
}
pub(crate) fn close_removed_linked_worktree_workspace(&mut self, ws_idx: usize) {
+ let removed_workspace_was_active = self.state.active == Some(ws_idx);
let parent_key = self
.state
.workspaces
@@ -979,6 +980,9 @@ impl App {
self.state.selected = ws_idx;
self.state.close_selected_workspace();
+ if !removed_workspace_was_active {
+ return;
+ }
let Some(parent_key) = parent_key else {
return;
};