diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-16 23:13:06 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-07-16 23:13:41 +0300 |
| commit | 550e9f8cc085f428429f5cf2da0bb2dba897e8b8 (patch) | |
| tree | 996e9cbbf905b89df8bd512fa9b0e68d07e25943 /src/workspace | |
| parent | 8dcb75a5c08b4dd1f225ea531a27824a9f41ae4a (diff) | |
fix: follow foreground process group leader cwd
refs #1472
Diffstat (limited to 'src/workspace')
| -rw-r--r-- | src/workspace/tab.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/workspace/tab.rs b/src/workspace/tab.rs index 15ca7e45..4c86a6e8 100644 --- a/src/workspace/tab.rs +++ b/src/workspace/tab.rs @@ -578,7 +578,14 @@ impl Tab { terminals: &HashMap<TerminalId, TerminalState>, terminal_runtimes: &TerminalRuntimeRegistry, ) -> Option<PathBuf> { - self.foreground_cwd_for_pane(pane_id, terminal_runtimes) - .or_else(|| self.cwd_for_pane(pane_id, terminals, terminal_runtimes)) + let terminal_id = self.terminal_id(pane_id)?; + terminal_runtimes + .get(terminal_id) + .and_then(|runtime| runtime.follow_cwd()) + .or_else(|| { + terminals + .get(terminal_id) + .map(|terminal| terminal.cwd.clone()) + }) } } |
