patch 8.1.0698: clearing the window is used too often
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.
diff --git a/src/version.c b/src/version.c
index 78baf47..ec4283a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -800,6 +800,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 698,
+/**/
697,
/**/
696,
diff --git a/src/window.c b/src/window.c
index b9617f0..e67aeea 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1577,7 +1577,7 @@
(void)win_comp_pos(); /* recompute window positions */
win_enter(wp, TRUE);
- redraw_later(CLEAR);
+ redraw_all_later(NOT_VALID);
}
/*
@@ -1660,7 +1660,7 @@
(void)win_comp_pos();
}
- redraw_later(CLEAR);
+ redraw_all_later(NOT_VALID);
}
/*
@@ -1817,7 +1817,7 @@
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 @@
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 @@
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 @@
apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
}
- redraw_all_later(CLEAR);
+ redraw_all_later(NOT_VALID);
}
/*
@@ -6569,7 +6568,7 @@
win_comp_pos();
if (wp != NULL && close_curwin)
win_goto(wp);
- redraw_all_later(CLEAR);
+ redraw_all_later(NOT_VALID);
}
clear_snapshot(curtab, idx);
}