]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.1.0698: clearing the window is used too often v8.1.0698
authorBram Moolenaar <Bram@vim.org>
Sun, 6 Jan 2019 16:25:29 +0000 (17:25 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 6 Jan 2019 16:25:29 +0000 (17:25 +0100)
Problem:    Clearing the window is used too often, causing the command line
            to be cleared when opening a tab. (Miroslav Koškár)
Solution:   Use NOT_VALID instead of CLEAR.  (suggested by Jason Franklin,
            closes #630)  Also do this for a few other places where clearing
            the screen isn't really needed.

src/version.c
src/window.c

index 78baf47457cadab900d2f58abac07d8bdeb3250b..ec4283af69d25259061c79857ca5bfc20c6c9bc6 100644 (file)
@@ -799,6 +799,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    698,
 /**/
     697,
 /**/
index b9617f0371fa7a08c73953b5d207ea8e038cc44a..e67aeeabdc6d937ed2929839901d53ea352d2870 100644 (file)
@@ -1577,7 +1577,7 @@ win_exchange(long Prenum)
     (void)win_comp_pos();              /* recompute window positions */
 
     win_enter(wp, TRUE);
-    redraw_later(CLEAR);
+    redraw_all_later(NOT_VALID);
 }
 
 /*
@@ -1660,7 +1660,7 @@ win_rotate(int upwards, int count)
        (void)win_comp_pos();
     }
 
-    redraw_later(CLEAR);
+    redraw_all_later(NOT_VALID);
 }
 
 /*
@@ -1817,7 +1817,7 @@ win_equal_rec(
            frame_new_height(topfr, height, FALSE, FALSE);
            topfr->fr_win->w_wincol = col;
            frame_new_width(topfr, width, FALSE, FALSE);
-           redraw_all_later(CLEAR);
+           redraw_all_later(NOT_VALID);
        }
     }
     else if (topfr->fr_layout == FR_ROW)
@@ -3702,7 +3702,7 @@ win_new_tabpage(int after)
        entering_window(curwin);
 #endif
 
-       redraw_all_later(CLEAR);
+       redraw_all_later(NOT_VALID);
        apply_autocmds(EVENT_WINNEW, NULL, NULL, FALSE, curbuf);
        apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);
        apply_autocmds(EVENT_TABNEW, NULL, NULL, FALSE, curbuf);
@@ -3939,7 +3939,6 @@ enter_tabpage(
 
     last_status(FALSE);                /* status line may appear or disappear */
     (void)win_comp_pos();      /* recompute w_winrow for all windows */
-    must_redraw = CLEAR;       /* need to redraw everything */
 #ifdef FEAT_DIFF
     diff_need_scrollbind = TRUE;
 #endif
@@ -3973,7 +3972,7 @@ enter_tabpage(
            apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
     }
 
-    redraw_all_later(CLEAR);
+    redraw_all_later(NOT_VALID);
 }
 
 /*
@@ -6569,7 +6568,7 @@ restore_snapshot(
        win_comp_pos();
        if (wp != NULL && close_curwin)
            win_goto(wp);
-       redraw_all_later(CLEAR);
+       redraw_all_later(NOT_VALID);
     }
     clear_snapshot(curtab, idx);
 }