diff --git a/tui/src/confirmation.rs b/tui/src/confirmation.rs index 28732e35..d883fd2f 100644 --- a/tui/src/confirmation.rs +++ b/tui/src/confirmation.rs @@ -88,7 +88,7 @@ impl FloatContent for ConfirmPrompt { use KeyCode::*; self.status = match key.code { Char('y') | Char('Y') => ConfirmStatus::Confirm, - Char('n') | Char('N') | Esc => ConfirmStatus::Abort, + Char('n') | Char('N') | Esc | Char('q') => ConfirmStatus::Abort, Char('j') => { self.scroll_down(); ConfirmStatus::None @@ -116,10 +116,10 @@ impl FloatContent for ConfirmPrompt { "Confirmation prompt", Box::new([ Shortcut::new("Continue", ["Y", "y"]), - Shortcut::new("Abort", ["N", "n"]), - Shortcut::new("Scroll up", ["j"]), - Shortcut::new("Scroll down", ["k"]), - Shortcut::new("Close linutil", ["CTRL-c", "q"]), + Shortcut::new("Abort", ["N", "n", "q", "Esc"]), + Shortcut::new("Scroll up", ["k"]), + Shortcut::new("Scroll down", ["j"]), + Shortcut::new("Close linutil", ["CTRL-c"]), ]), ) } diff --git a/tui/src/state.rs b/tui/src/state.rs index 4e398ee7..facb9a1f 100644 --- a/tui/src/state.rs +++ b/tui/src/state.rs @@ -413,11 +413,15 @@ impl AppState { // This should be defined first to allow closing // the application even when not drawable ( If terminal is small ) // Exit on 'q' or 'Ctrl-c' input - if matches!( - self.focus, - Focus::TabList | Focus::List | Focus::ConfirmationPrompt(_) - ) && (key.code == KeyCode::Char('q') - || key.modifiers.contains(KeyModifiers::CONTROL) && key.code == KeyCode::Char('c')) + if matches!(self.focus, Focus::TabList | Focus::List) + && (key.code == KeyCode::Char('q') + || key.modifiers.contains(KeyModifiers::CONTROL) && key.code == KeyCode::Char('c')) + { + return false; + } + + if matches!(self.focus, Focus::ConfirmationPrompt(_)) + && (key.modifiers.contains(KeyModifiers::CONTROL) && key.code == KeyCode::Char('c')) { return false; }