aboutsummaryrefslogtreecommitdiff
path: root/src/app/api/layouts.rs
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-22 22:41:01 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-22 22:41:01 +0300
commita02c3a69bb5cea3832ef54e7cbe29425cc392eb3 (patch)
tree7dd9a6183f8204603680c5fe0ab03cb5b19dcfa4 /src/app/api/layouts.rs
parent9524d0a3bc9912b2094a1bda38c845a10bb4ba7b (diff)
refactor: centralize new terminal cwd selection
replaces contributions from Pitchfork-and-Torch
Diffstat (limited to 'src/app/api/layouts.rs')
-rw-r--r--src/app/api/layouts.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/app/api/layouts.rs b/src/app/api/layouts.rs
index 0fdbaba0..34795474 100644
--- a/src/app/api/layouts.rs
+++ b/src/app/api/layouts.rs
@@ -339,10 +339,15 @@ impl App {
return PathBuf::from(cwd);
}
let follow_cwd = replace_target.and_then(|(_, tab_idx)| {
- let ws = self.state.workspaces.get(ws_idx)?;
- let tab = ws.tabs.get(tab_idx)?;
- let pane_id = tab.layout.focused();
- tab.follow_cwd_for_pane(pane_id, &self.state.terminals, &self.terminal_runtimes)
+ let pane_id = self
+ .state
+ .workspaces
+ .get(ws_idx)?
+ .tabs
+ .get(tab_idx)?
+ .layout
+ .focused();
+ self.launch_cwd_for_pane_in_workspace(ws_idx, pane_id)
});
self.resolve_new_terminal_cwd(
follow_cwd.or_else(|| self.focused_pane_cwd_in_workspace(ws_idx)),
@@ -396,7 +401,7 @@ impl App {
.cwd
.as_ref()
.map(PathBuf::from)
- .or_else(|| self.follow_cwd_for_pane_in_workspace(ws_idx, target_pane_id));
+ .or_else(|| self.launch_cwd_for_pane_in_workspace(ws_idx, target_pane_id));
let extra_env = super::env::normalize_launch_env(pane.env.clone())
.map_err(|(_, message)| message.to_string())?;
let direction = match direction {