diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-03 17:33:47 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-03 17:33:47 +0300 |
| commit | e82ae0b32981076ec7360e8d4dd5294a7abc05cf (patch) | |
| tree | f91cc8eeba8074315482aed84f5bcf6b4b31dbdb /src/app/mod.rs | |
| parent | 5ed262a43ac7f264a1a7523b6d4507ba4a976604 (diff) | |
feat: reuse rename modal for new tab naming
Diffstat (limited to 'src/app/mod.rs')
| -rw-r--r-- | src/app/mod.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index 3b744d02..17fc1b5d 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -193,6 +193,7 @@ impl App { request_new_tab: false, request_complete_onboarding: false, name_input: String::new(), + name_input_replace_on_type: false, onboarding_step: 0, onboarding_list: state::SelectionListState::new(1), release_notes: startup_release_notes.map(|notes| state::ReleaseNotesState { @@ -1822,8 +1823,23 @@ impl App { .and_then(|ws_idx| self.seed_cwd_from_workspace(ws_idx)) .or_else(|| std::env::current_dir().ok()) .unwrap_or_else(|| std::path::PathBuf::from("/")); - if let Err(e) = self.create_tab_with_options(initial_cwd, true) { - error!(err = %e, "failed to create tab"); + match self.create_tab_with_options(initial_cwd, true) { + Ok(_) => { + if let Some(ws) = self + .state + .active + .and_then(|ws_idx| self.state.workspaces.get(ws_idx)) + { + if let Some(name) = ws.active_tab_display_name() { + self.state.name_input = name; + self.state.name_input_replace_on_type = true; + self.state.mode = Mode::RenameTab; + } + } + } + Err(e) => { + error!(err = %e, "failed to create tab"); + } } } |
