From 8a05083503d247b3c020b0540492114070c54f23 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sun, 9 Nov 2025 15:35:14 +0900 Subject: [PATCH] Fix reading an extra key after a terminal action Fix #4578 --- src/terminal.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/terminal.go b/src/terminal.go index 7fddffed..dd09b989 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -496,6 +496,14 @@ const ( reqFatal ) +func isTerminalEvent(et util.EventType) bool { + switch et { + case reqClose, reqPrintQuery, reqBecome, reqQuit, reqFatal: + return true + } + return false +} + type action struct { t actionType a string @@ -5528,7 +5536,7 @@ func (t *Terminal) Loop() error { req := func(evts ...util.EventType) { for _, event := range evts { events = append(events, event) - if event == reqClose || event == reqQuit { + if isTerminalEvent(event) { looping = false } }