aboutsummaryrefslogtreecommitdiff
path: root/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'screen.c')
-rw-r--r--screen.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/screen.c b/screen.c
index c3e5da70..898cc860 100644
--- a/screen.c
+++ b/screen.c
@@ -536,6 +536,7 @@ screen_alternate_on(struct screen *s, struct grid_cell *gc, int cursor)
grid_view_clear(s->grid, 0, 0, sx, sy, 8);
+ s->saved_flags = s->grid->flags;
s->grid->flags &= ~GRID_HISTORY;
}
@@ -579,7 +580,8 @@ screen_alternate_off(struct screen *s, struct grid_cell *gc, int cursor)
* Turn history back on (so resize can use it) and then resize back to
* the current size.
*/
- s->grid->flags |= GRID_HISTORY;
+ if (s->saved_flags & GRID_HISTORY)
+ s->grid->flags |= GRID_HISTORY;
if (sy > s->saved_grid->sy || sx != s->saved_grid->sx)
screen_resize(s, sx, sy, 1);