aboutsummaryrefslogtreecommitdiff
path: root/src/app/api/tabs.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/api/tabs.rs')
-rw-r--r--src/app/api/tabs.rs18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/app/api/tabs.rs b/src/app/api/tabs.rs
index 4057eced..7c7ad9d7 100644
--- a/src/app/api/tabs.rs
+++ b/src/app/api/tabs.rs
@@ -98,9 +98,13 @@ impl App {
);
if let Some(label) = label {
let workspace_id = self.state.workspaces[ws_idx].id.clone();
- let tab_id = self
- .public_tab_id(ws_idx, tab_idx)
- .unwrap_or_else(|| format!("{}:{}", workspace_id, tab_idx + 1));
+ let tab_id = self.public_tab_id(ws_idx, tab_idx).unwrap_or_else(|| {
+ format!(
+ "{}:t{}",
+ workspace_id,
+ crate::workspace::encode_public_number(tab_idx + 1)
+ )
+ });
if let Some(tab) = self
.state
.workspaces
@@ -186,6 +190,10 @@ impl App {
let Some((ws_idx, tab_idx)) = self.parse_tab_id(&target.tab_id) else {
return tab_not_found(id, &target.tab_id);
};
+ let Some(tab_id) = self.public_tab_id(ws_idx, tab_idx) else {
+ return tab_not_found(id, &target.tab_id);
+ };
+ let workspace_id = self.public_workspace_id(ws_idx);
let terminal_ids = self.state.terminal_ids_for_tab(ws_idx, tab_idx);
let Some(ws) = self.state.workspaces.get_mut(ws_idx) else {
return tab_not_found(id, &target.tab_id);
@@ -210,8 +218,8 @@ impl App {
self.emit_event(EventEnvelope {
event: EventKind::TabClosed,
data: EventData::TabClosed {
- tab_id: target.tab_id,
- workspace_id: self.public_workspace_id(ws_idx),
+ tab_id,
+ workspace_id,
},
});