aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--screen.c4
-rw-r--r--tmux.h1
2 files changed, 4 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);
diff --git a/tmux.h b/tmux.h
index 3cc46df1..fbf10cf4 100644
--- a/tmux.h
+++ b/tmux.h
@@ -761,6 +761,7 @@ struct screen {
u_int saved_cy;
struct grid *saved_grid;
struct grid_cell saved_cell;
+ int saved_flags;
bitstr_t *tabs;
struct screen_sel *sel;