From 0a3b248c673b5a806d105f1e8f6326b99d844595 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 6 Nov 2025 19:49:36 -0700 Subject: [PATCH] Close git diff tabs with same path when new one is opened --- src/main.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main.rs b/src/main.rs index 5e98415..c0a62ee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2149,6 +2149,21 @@ impl Application for App { } } Message::OpenGitDiff(project_path, diff) => { + // Close any diff tabs with same path + { + let mut close = Vec::new(); + for entity in self.tab_model.iter() { + if let Some(Tab::GitDiff(other_tab)) = self.tab_model.data::(entity) { + if other_tab.diff.path == diff.path { + close.push(entity); + } + } + } + for entity in close { + self.tab_model.remove(entity); + } + } + let relative_path = match diff.path.strip_prefix(project_path.clone()) { Ok(ok) => ok, Err(err) => {