Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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.
- Loading branch information
Showing
2 changed files
with
8 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
brammool
via email
Author
Contributor
|
||
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); | ||
} | ||
|
It looks like this one may have been a bit too hasty.
I can observe the following problem:
For me, the screen is now blank when it should show the "screen.c" buffer. Can anyone reproduce this?
It appears that adding the line...
... will fix the issue. I can see that this was added in the neovim adjustment to this function.