diff options
Diffstat (limited to 'src/app/creation.rs')
| -rw-r--r-- | src/app/creation.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/app/creation.rs b/src/app/creation.rs index 0277ba10..2e978ee9 100644 --- a/src/app/creation.rs +++ b/src/app/creation.rs @@ -76,6 +76,33 @@ impl App { }) } + pub(super) fn begin_tui_workspace_create(&mut self, request_id: &'static str) { + if self.state.prompt_new_workspace_name { + let follow_cwd = self.workspace_creation_source().and_then(|ws_idx| { + self.focused_pane_cwd_in_workspace(ws_idx) + .or_else(|| self.seed_cwd_from_workspace(ws_idx)) + }); + let cwd = self.resolve_new_terminal_cwd(follow_cwd); + super::input::open_new_workspace_dialog(&mut self.state, cwd); + return; + } + + self.runtime_workspace_create( + request_id, + crate::api::schema::WorkspaceCreateParams { + cwd: None, + focus: true, + label: None, + env: Default::default(), + }, + ); + self.state.mode = if self.state.active.is_some() { + Mode::Terminal + } else { + Mode::Navigate + }; + } + /// Create a workspace with a real PTY (needs event_tx). #[cfg(test)] pub(crate) fn create_workspace(&mut self) { |
