aboutsummaryrefslogtreecommitdiff
path: root/src/app/input
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/input')
-rw-r--r--src/app/input/navigate.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/app/input/navigate.rs b/src/app/input/navigate.rs
index 7eb5b8d9..f5a0bcaa 100644
--- a/src/app/input/navigate.rs
+++ b/src/app/input/navigate.rs
@@ -682,7 +682,14 @@ pub(super) fn execute_navigate_action(state: &mut AppState, action: NavigateActi
state.next_agent();
leave_navigate_mode(state);
}
- NavigateAction::NewTab => super::modal::open_new_tab_dialog(state),
+ NavigateAction::NewTab => {
+ if state.prompt_new_tab_name {
+ super::modal::open_new_tab_dialog(state);
+ } else {
+ state.request_new_tab = true;
+ leave_navigate_mode(state);
+ }
+ }
NavigateAction::RenameTab => super::modal::open_rename_active_tab(state, false),
NavigateAction::PreviousTab => {
state.previous_tab();
@@ -1207,6 +1214,19 @@ mod tests {
}
#[test]
+ fn new_tab_action_can_skip_rename_dialog() {
+ let mut state = state_with_workspaces(&["test"]);
+ state.prompt_new_tab_name = false;
+
+ execute_navigate_action(&mut state, NavigateAction::NewTab);
+
+ assert_eq!(state.mode, Mode::Terminal);
+ assert!(!state.creating_new_tab);
+ assert!(state.request_new_tab);
+ assert!(state.requested_new_tab_name.is_none());
+ }
+
+ #[test]
fn persistence_mode_navigate_q_detaches_instead_of_quitting_server() {
let mut state = crate::app::state::AppState::test_new();
state.quit_detaches = true;