mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 16:56:09 +03:00
Merge pull request #987 from rockorager/mode-1047
terminal: implement mode 1047 (alternate screen)
This commit is contained in:
@ -209,6 +209,7 @@ const entries: []const ModeEntry = &.{
|
|||||||
.{ .name = "alt_esc_prefix", .value = 1036, .default = true },
|
.{ .name = "alt_esc_prefix", .value = 1036, .default = true },
|
||||||
.{ .name = "alt_sends_escape", .value = 1039 },
|
.{ .name = "alt_sends_escape", .value = 1039 },
|
||||||
.{ .name = "reverse_wrap_extended", .value = 1045 },
|
.{ .name = "reverse_wrap_extended", .value = 1045 },
|
||||||
|
.{ .name = "alt_screen", .value = 1047 },
|
||||||
.{ .name = "alt_screen_save_cursor_clear_enter", .value = 1049 },
|
.{ .name = "alt_screen_save_cursor_clear_enter", .value = 1049 },
|
||||||
.{ .name = "bracketed_paste", .value = 2004 },
|
.{ .name = "bracketed_paste", .value = 2004 },
|
||||||
.{ .name = "synchronized_output", .value = 2026 },
|
.{ .name = "synchronized_output", .value = 2026 },
|
||||||
|
@ -1772,6 +1772,21 @@ const StreamHandler = struct {
|
|||||||
self.terminal.scrolling_region.right = self.terminal.cols - 1;
|
self.terminal.scrolling_region.right = self.terminal.cols - 1;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
.alt_screen => {
|
||||||
|
const opts: terminal.Terminal.AlternateScreenOptions = .{
|
||||||
|
.cursor_save = false,
|
||||||
|
.clear_on_enter = false,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (enabled)
|
||||||
|
self.terminal.alternateScreen(self.alloc, opts)
|
||||||
|
else
|
||||||
|
self.terminal.primaryScreen(self.alloc, opts);
|
||||||
|
|
||||||
|
// Schedule a render since we changed screens
|
||||||
|
try self.queueRender();
|
||||||
|
},
|
||||||
|
|
||||||
.alt_screen_save_cursor_clear_enter => {
|
.alt_screen_save_cursor_clear_enter => {
|
||||||
const opts: terminal.Terminal.AlternateScreenOptions = .{
|
const opts: terminal.Terminal.AlternateScreenOptions = .{
|
||||||
.cursor_save = true,
|
.cursor_save = true,
|
||||||
|
Reference in New Issue
Block a user