diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-01-10 23:34:13 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-01-11 10:55:43 +0100 |
commit | 889f73e8618458ed46050e26cac0dee30a19b4f4 (patch) | |
tree | 596385945c7a0050189d7f0f89880fdee5a4b8a7 /src/nvim/screen.c | |
parent | 3f10c5b5338fc7efec53a23427e1c0e2dea56be4 (diff) | |
download | rneovim-889f73e8618458ed46050e26cac0dee30a19b4f4.tar.gz rneovim-889f73e8618458ed46050e26cac0dee30a19b4f4.tar.bz2 rneovim-889f73e8618458ed46050e26cac0dee30a19b4f4.zip |
screen: make update_screen() the only entry point for redrawing
update_single_line() was only used for 'concealcursor'. But 'cursorline'
has very similiar characteristics (redraw both lines on move cursor
between lines) and works without its own special entry point to the
redraw subsystem.
Later on 'concealcursor' and 'cursorline' could share more logic, but for
now make the former use standard redrawWinline(). Make sure it is called
before update_screen(), so that it is immediately visible.
Get rid of update_prepare() and update_finish(), and all issues from
them and their callsites not being in sync with changes to
update_screen()
Diffstat (limited to 'src/nvim/screen.c')
-rw-r--r-- | src/nvim/screen.c | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 27d72ffbf7..485071d11c 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -482,25 +482,6 @@ void update_screen(int type) } -// Prepare for updating one or more windows. -// Caller must check for "updating_screen" already set to avoid recursiveness. -static void update_prepare(void) -{ - updating_screen = true; - start_search_hl(); -} - -// Finish updating one or more windows. -static void update_finish(void) -{ - if (redraw_cmdline) { - showmode(); - } - - end_search_hl(); - updating_screen = false; -} - /* * Return TRUE if the cursor line in window "wp" may be concealed, according * to the 'concealcursor' option. @@ -537,39 +518,6 @@ void conceal_check_cursor_line(void) } } -void update_single_line(win_T *wp, linenr_T lnum) -{ - int row; - int j; - - // Don't do anything if the screen structures are (not yet) valid. - if (linebuf_char == NULL || updating_screen) { - return; - } - - if (lnum >= wp->w_topline && lnum < wp->w_botline - && foldedCount(wp, lnum, &win_foldinfo) == 0) { - update_prepare(); - - row = 0; - for (j = 0; j < wp->w_lines_valid; ++j) { - if (lnum == wp->w_lines[j].wl_lnum) { - init_search_hl(wp); - prepare_search_hl(wp, lnum); - update_window_hl(wp, false); - // allocate window grid if not already - win_grid_alloc(wp); - win_line(wp, lnum, row, row + wp->w_lines[j].wl_size, false, false); - break; - } - row += wp->w_lines[j].wl_size; - } - - update_finish(); - } - need_cursor_line_redraw = false; -} - /* * Update a single window. |