diff --git a/src/terminal/Screen.zig b/src/terminal/Screen.zig index 42bcd54c0..0e42dbb9b 100644 --- a/src/terminal/Screen.zig +++ b/src/terminal/Screen.zig @@ -1763,10 +1763,15 @@ pub fn manualStyleUpdate(self: *Screen) !void { // If our new style is the default, just reset to that if (self.cursor.style.default()) { - self.cursor.style_id = 0; + self.cursor.style_id = style.default_id; return; } + // Clear the cursor style ID to prevent weird things from happening + // if the page capacity has to be adjusted which would end up calling + // manualStyleUpdate again. + self.cursor.style_id = style.default_id; + // After setting the style, we need to update our style map. // Note that we COULD lazily do this in print. We should look into // if that makes a meaningful difference. Our priority is to keep print