aboutsummaryrefslogtreecommitdiff
path: root/src/app/creation.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/creation.rs')
-rw-r--r--src/app/creation.rs27
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) {