From 095c82910b2df5302c75934cb5f7b13bdd759efc Mon Sep 17 00:00:00 2001 From: Daniel Wennberg Date: Sun, 11 Jan 2026 22:56:03 -0800 Subject: [PATCH] Terminal: keep cross-boundary rows dirty in {insert,delete}Lines --- src/terminal/Terminal.zig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/terminal/Terminal.zig b/src/terminal/Terminal.zig index 903e427d4..7b384f34e 100644 --- a/src/terminal/Terminal.zig +++ b/src/terminal/Terminal.zig @@ -1690,6 +1690,10 @@ pub fn insertLines(self: *Terminal, count: usize) void { // Continue the loop to try handling this row again. continue; }; + + // The clone operation may overwrite the dirty flag, so make + // sure the row is still marked dirty. + dst_row.dirty = true; } else { if (!left_right) { // Swap the src/dst cells. This ensures that our dst gets the @@ -1888,6 +1892,10 @@ pub fn deleteLines(self: *Terminal, count: usize) void { // Continue the loop to try handling this row again. continue; }; + + // The clone operation may overwrite the dirty flag, so make + // sure the row is still marked dirty. + dst_row.dirty = true; } else { if (!left_right) { // Swap the src/dst cells. This ensures that our dst gets the