aboutsummaryrefslogtreecommitdiff
path: root/src/workspace/aggregate.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/workspace/aggregate.rs')
-rw-r--r--src/workspace/aggregate.rs21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/workspace/aggregate.rs b/src/workspace/aggregate.rs
index bf4c9408..d1fcf984 100644
--- a/src/workspace/aggregate.rs
+++ b/src/workspace/aggregate.rs
@@ -30,7 +30,12 @@ impl Tab {
})
}
- pub fn pane_details(&self, terminals: &HashMap<TerminalId, TerminalState>) -> Vec<PaneDetail> {
+ fn pane_details(
+ &self,
+ terminals: &HashMap<TerminalId, TerminalState>,
+ tab_idx: usize,
+ tab_label: &str,
+ ) -> Vec<PaneDetail> {
self.layout
.pane_ids()
.iter()
@@ -48,8 +53,8 @@ impl Tab {
let presentation = terminal.effective_presentation();
Some(PaneDetail {
pane_id: *id,
- tab_idx: 0,
- tab_label: self.display_name(),
+ tab_idx,
+ tab_label: tab_label.to_string(),
label: agent_label.clone(),
agent_label,
agent: terminal.effective_known_agent(),
@@ -100,12 +105,10 @@ impl Workspace {
.iter()
.enumerate()
.flat_map(|(tab_idx, tab)| {
- tab.pane_details(terminals)
- .into_iter()
- .map(move |mut detail| {
- detail.tab_idx = tab_idx;
- detail
- })
+ let tab_label = self
+ .tab_display_name(tab_idx)
+ .unwrap_or_else(|| (tab_idx + 1).to_string());
+ tab.pane_details(terminals, tab_idx, &tab_label).into_iter()
})
.map(|mut detail| {
if multi_tab {