diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-07-29 01:32:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-29 01:32:39 +0200 |
commit | 8951304c10d82b5163429faf1754bd52b1cb295f (patch) | |
tree | e9446833c821a248c954517cd8512639c935d7ff /src/nvim/screen.c | |
parent | 9abe0bdb54a05932727665f68044ad23ed34fc30 (diff) | |
parent | e09e9ca8103f55d3913816388c5754cc2afe3109 (diff) | |
download | rneovim-8951304c10d82b5163429faf1754bd52b1cb295f.tar.gz rneovim-8951304c10d82b5163429faf1754bd52b1cb295f.tar.bz2 rneovim-8951304c10d82b5163429faf1754bd52b1cb295f.zip |
Merge #8793 from janlazo/vim-8.0.0837
Diffstat (limited to 'src/nvim/screen.c')
-rw-r--r-- | src/nvim/screen.c | 77 |
1 files changed, 41 insertions, 36 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 4774075086..9f0d8a5080 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -543,52 +543,57 @@ static void update_finish(void) updating_screen = FALSE; } -void update_debug_sign(buf_T *buf, linenr_T lnum) +void update_debug_sign(const buf_T *const buf, const linenr_T lnum) { - int doit = FALSE; - win_foldinfo.fi_level = 0; - - /* update/delete a specific mark */ - FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { - if (buf != NULL && lnum > 0) { - if (wp->w_buffer == buf && lnum >= wp->w_topline - && lnum < wp->w_botline) { - if (wp->w_redraw_top == 0 || wp->w_redraw_top > lnum) { - wp->w_redraw_top = lnum; - } - if (wp->w_redraw_bot == 0 || wp->w_redraw_bot < lnum) { - wp->w_redraw_bot = lnum; - } - redraw_win_later(wp, VALID); + bool doit = false; + win_foldinfo.fi_level = 0; + + // update/delete a specific mark + FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { + if (buf != NULL && lnum > 0) { + if (wp->w_buffer == buf && lnum >= wp->w_topline + && lnum < wp->w_botline) { + if (wp->w_redraw_top == 0 || wp->w_redraw_top > lnum) { + wp->w_redraw_top = lnum; + } + if (wp->w_redraw_bot == 0 || wp->w_redraw_bot < lnum) { + wp->w_redraw_bot = lnum; } - } else { redraw_win_later(wp, VALID); } - if (wp->w_redr_type != 0) { - doit = TRUE; - } + } else { + redraw_win_later(wp, VALID); } - - /* Return when there is nothing to do, screen updating is already - * happening (recursive call) or still starting up. */ - if (!doit || updating_screen || starting) { - return; + if (wp->w_redr_type != 0) { + doit = true; } + } - /* update all windows that need updating */ - update_prepare(); + // Return when there is nothing to do, screen updating is already + // happening (recursive call), messages on the screen or still starting up. + if (!doit + || updating_screen + || State == ASKMORE + || State == HITRETURN + || msg_scrolled + || starting) { + return; + } - FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { - if (wp->w_redr_type != 0) { - update_window_hl(wp, wp->w_redr_type >= NOT_VALID); - win_update(wp); - } - if (wp->w_redr_status) { - win_redr_status(wp); - } + // update all windows that need updating + update_prepare(); + + FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { + if (wp->w_redr_type != 0) { + update_window_hl(wp, wp->w_redr_type >= NOT_VALID); + win_update(wp); + } + if (wp->w_redr_status) { + win_redr_status(wp); } + } - update_finish(); + update_finish(); } /* |