mirror of
https://github.com/neovim/neovim.git
synced 2025-10-17 07:16:09 +00:00
vim-patch:9.0.0245: mechanism to prevent recursive screen updating is incomplete (#27448)
Problem: Mechanism to prevent recursive screen updating is incomplete.
Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl().
(issue vim/vim#10952)
471c0fa3ee
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
@@ -322,7 +322,7 @@ static void changed_common(buf_T *buf, linenr_T lnum, colnr_T col, linenr_T lnum
|
||||
FOR_ALL_TAB_WINDOWS(tp, wp) {
|
||||
if (wp->w_buffer == buf) {
|
||||
// Mark this window to be redrawn later.
|
||||
if (wp->w_redr_type < UPD_VALID) {
|
||||
if (!redraw_not_allowed && wp->w_redr_type < UPD_VALID) {
|
||||
wp->w_redr_type = UPD_VALID;
|
||||
}
|
||||
|
||||
@@ -390,9 +390,7 @@ static void changed_common(buf_T *buf, linenr_T lnum, colnr_T col, linenr_T lnum
|
||||
|
||||
// Call update_screen() later, which checks out what needs to be redrawn,
|
||||
// since it notices b_mod_set and then uses b_mod_*.
|
||||
if (must_redraw < UPD_VALID) {
|
||||
must_redraw = UPD_VALID;
|
||||
}
|
||||
set_must_redraw(UPD_VALID);
|
||||
|
||||
// when the cursor line is changed always trigger CursorMoved
|
||||
if (last_cursormoved_win == curwin && curwin->w_buffer == buf
|
||||
|
Reference in New Issue
Block a user