From 05d091483a29e7937914e9fd4e94d0c6d9043aad Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Thu, 5 Dec 2013 22:46:39 +0100 Subject: [PATCH] fix changing state when swapping buffers. Closes T605 For some reason, this is not a real swap. Thanks to gregkh for the great bug report. --- src/bin/termpty.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/termpty.c b/src/bin/termpty.c index 5f711d5f..2fedba9e 100644 --- a/src/bin/termpty.c +++ b/src/bin/termpty.c @@ -1013,16 +1013,16 @@ void termpty_screen_swap(Termpty *ty) { Termcell *tmp_screen; - Termstate tmp_state; int tmp_circular_offset; tmp_screen = ty->screen; ty->screen = ty->screen2; ty->screen2 = tmp_screen; - tmp_state = ty->state; - ty->state = ty->swap; - ty->swap = tmp_state; + if (ty->altbuf) + ty->state = ty->swap; + else + ty->swap = ty->state; tmp_circular_offset = ty->circular_offset; ty->circular_offset = ty->circular_offset2;