From 0a37c2b05bc5a0f42bb8b4fc4c30993eced24cd2 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Fri, 27 Feb 2026 16:06:23 +0100 Subject: [PATCH] refactor(terminal): close terminal on escape keypress if exited --- src/tui/terminal_view.zig | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/tui/terminal_view.zig b/src/tui/terminal_view.zig index 0eb6c1d..925ae8a 100644 --- a/src/tui/terminal_view.zig +++ b/src/tui/terminal_view.zig @@ -155,12 +155,18 @@ pub fn receive(self: *Self, from: tp.pid_ref, m: tp.message) error{Exit}!bool { .mods = @bitCast(modifiers), .text = if (text.len > 0) text else null, }; - if (self.vt.process_exited and (keypress == input.key.enter or keypress == '\r')) { - self.vt.process_exited = false; - self.restart() catch |e| - std.log.err("terminal_view: restart failed: {}", .{e}); - tui.need_render(@src()); - return true; + if (self.vt.process_exited) { + if (keypress == input.key.enter) { + self.vt.process_exited = false; + self.restart() catch |e| + std.log.err("terminal_view: restart failed: {}", .{e}); + tui.need_render(@src()); + return true; + } + if (keypress == input.key.escape) { + tp.self_pid().send(.{ "cmd", "close_terminal", .{} }) catch {}; + return true; + } } self.vt.vt.scrollToBottom(); self.vt.vt.update(.{ .key_press = key }) catch |e|