Handle Ctrl+C quit when idle (#1402)
## Summary - show `Ctrl+C to quit` hint when pressing Ctrl+C with no active task - exiting with Ctrl+C if the hint is already visible - clear the hint when tasks begin or other keys are pressed https://github.com/user-attachments/assets/931e2d7c-1c80-4b45-9908-d119f74df23c ------ https://chatgpt.com/s/cd_685ec8875a308191beaa95886dc1379e Fixes #1245
This commit is contained in:
@@ -11,7 +11,6 @@ use crate::slash_command::SlashCommand;
|
||||
use crate::tui;
|
||||
use codex_core::config::Config;
|
||||
use codex_core::protocol::Event;
|
||||
use codex_core::protocol::Op;
|
||||
use color_eyre::eyre::Result;
|
||||
use crossterm::event::KeyCode;
|
||||
use crossterm::event::KeyEvent;
|
||||
@@ -193,10 +192,11 @@ impl<'a> App<'a> {
|
||||
modifiers: crossterm::event::KeyModifiers::CONTROL,
|
||||
..
|
||||
} => {
|
||||
// Forward interrupt to ChatWidget when active.
|
||||
match &mut self.app_state {
|
||||
AppState::Chat { widget } => {
|
||||
widget.submit_op(Op::Interrupt);
|
||||
if widget.on_ctrl_c() {
|
||||
self.app_event_tx.send(AppEvent::ExitRequest);
|
||||
}
|
||||
}
|
||||
AppState::Login { .. } | AppState::GitWarning { .. } => {
|
||||
// No-op.
|
||||
|
||||
Reference in New Issue
Block a user