Robert de Bath's patch: be a little more careful of main and
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 11 Mar 2000 14:10:10 +0000 (14:10 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 11 Mar 2000 14:10:10 +0000 (14:10 +0000)
alternate screens when resizing the window. Should avoid lines of
alternate screen showing up in scrollback buffer.

git-svn-id: svn://svn.tartarus.org/sgt/putty@403 cda61777-01e9-0310-a592-d414129be87e

terminal.c

index de9c7eb..b0cc354 100644 (file)
@@ -204,9 +204,14 @@ void term_size(int newrows, int newcols, int newsavelines) {
     unsigned long *newtext, *newdisp, *newwant, *newalt;
     int i, j, crows, ccols;
 
+    int save_alt_which = alt_which;
+
     if (newrows == rows && newcols == cols && newsavelines == savelines)
        return;                        /* nothing to do */
 
+    deselect();
+    swap_screen(0);
+
     alt_t = marg_t = 0;
     alt_b = marg_b = newrows - 1;
 
@@ -280,7 +285,8 @@ void term_size(int newrows, int newcols, int newsavelines) {
     savelines = newsavelines;
     fix_cpos;
 
-    deselect();
+    swap_screen(save_alt_which);
+
     update_sbar();
     term_update();
 }