diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-06-26 21:43:57 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2019-06-26 21:49:29 -0400 |
commit | 2b400daca38b69e9d1dc76d97fa9391e2764b400 (patch) | |
tree | 7e982f696d1371ec48ae6bdb28394a8f23791165 | |
parent | 58cf81914da3fbcc875cbd4954b62a314be31c9a (diff) | |
download | rneovim-2b400daca38b69e9d1dc76d97fa9391e2764b400.tar.gz rneovim-2b400daca38b69e9d1dc76d97fa9391e2764b400.tar.bz2 rneovim-2b400daca38b69e9d1dc76d97fa9391e2764b400.zip |
vim-patch:8.0.1100: stuck in redraw loop when 'lazyredraw' is set
Problem: Stuck in redraw loop when 'lazyredraw' is set.
Solution: Don't loop on update_screen() when not redrawing. (Yasuhiro
Matsumoto, closes vim/vim#2082)
https://github.com/vim/vim/commit/072412ed45aa20a67aaa7e387d7f6bf59c7d3fbe
-rw-r--r-- | src/nvim/screen.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index d141520fef..19dff0a0f0 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -269,14 +269,14 @@ void update_curbuf(int type) /// and redraw_all_later() to mark parts of the screen as needing a redraw. /// /// @param type set to a NOT_VALID to force redraw of entire screen -void update_screen(int type) +int update_screen(int type) { static int did_intro = FALSE; int did_one; // Don't do anything if the screen structures are (not yet) valid. if (!default_grid.chars) { - return; + return FAIL; } if (must_redraw) { @@ -299,9 +299,10 @@ void update_screen(int type) if (!redrawing() || updating_screen) { redraw_later(type); /* remember type for next time */ must_redraw = type; - if (type > INVERTED_ALL) - curwin->w_lines_valid = 0; /* don't use w_lines[].wl_size now */ - return; + if (type > INVERTED_ALL) { + curwin->w_lines_valid = 0; // don't use w_lines[].wl_size now + } + return FAIL; } updating_screen = TRUE; @@ -511,6 +512,7 @@ void update_screen(int type) // either cmdline is cleared, not drawn or mode is last drawn cmdline_was_last_drawn = false; + return OK; } /* |