From d76657f2c7fc18dcce3b9af43842c8afaba1646b Mon Sep 17 00:00:00 2001 From: Can Celik Date: Fri, 14 Aug 2026 05:18:30 +0300 Subject: fix: speed up alternate-screen history reads (#2426) refs #2387 --- src/server/headless.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/server/headless.rs') diff --git a/src/server/headless.rs b/src/server/headless.rs index 7393a7c5..ac1e7db2 100644 --- a/src/server/headless.rs +++ b/src/server/headless.rs @@ -278,6 +278,7 @@ struct AltScreenReadSpec { lines: usize, unwrap: bool, initial: crate::terminal::ScreenSnapshot, + content_seq: u64, } enum AltScreenReadConflict { @@ -3416,7 +3417,7 @@ impl HeadlessServer { if runtime.wheel_routing() != Some(crate::pane::WheelRouting::MouseReport) { return None; } - let (screen, initial) = runtime.screen_text_snapshot()?; + let (screen, initial, content_seq) = runtime.screen_text_snapshot_with_seq()?; if screen != crate::ghostty::ActiveScreen::Alternate || initial.rows.len() >= lines { return None; } @@ -3425,6 +3426,7 @@ impl HeadlessServer { lines, unwrap: source == ReadSource::RecentUnwrapped, initial, + content_seq, }) } @@ -3776,6 +3778,7 @@ impl HeadlessServer { spec.lines, spec.unwrap, spec.initial, + spec.content_seq, Instant::now(), ); self.pending_alt_screen_reads.push(pending); @@ -6636,6 +6639,7 @@ next_tab = "" cols: 80, rows: Vec::new(), }, + 0, Instant::now(), ), ); -- cgit v1.2.3