From 59bc980250e7b448a8e8693484a9fb5d625fc198 Mon Sep 17 00:00:00 2001 From: Alex Straight Date: Sun, 8 Jun 2025 23:22:04 -0700 Subject: feat: implement mode 1048 for saving/restoring cursor position --- src/termio/stream_handler.zig | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/termio') diff --git a/src/termio/stream_handler.zig b/src/termio/stream_handler.zig index b3aa82d20..2069a8ff2 100644 --- a/src/termio/stream_handler.zig +++ b/src/termio/stream_handler.zig @@ -597,6 +597,18 @@ pub const StreamHandler = struct { try self.queueRender(); }, + // Mode 1048 is xterm's conditional save cursor depending + // on if alt screen is enabled or not (at the terminal emulator + // level). Alt screen is always enabled for us so this just + // does a save/restore cursor. + .save_cursor => { + if (enabled) { + self.terminal.saveCursor(); + } else { + try self.terminal.restoreCursor(); + } + }, + // Force resize back to the window size .enable_mode_3 => { const grid_size = self.size.grid(); -- cgit v1.2.3