Mercurial > vim
changeset 5749:37af1e6e91bb v7.4.219
updated for version 7.4.219
Problem: When 'relativenumber' or 'cursorline' are set the window is
redrawn much to often. (Patrick Hemmer, Dominique Pelle)
Solution: Check the VALID_CROW flag instead of VALID_WROW.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 27 Mar 2014 12:11:48 +0100 |
parents | d96e8fbc3747 |
children | 2200a7dfa660 |
files | src/move.c src/version.c |
diffstat | 2 files changed, 23 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/move.c +++ b/src/move.c @@ -772,6 +772,20 @@ curs_rows(wp, do_botline) } } + /* Redraw when w_cline_row changes and 'relativenumber' or 'cursorline' is + * set. */ + if ((curwin->w_p_rnu +#ifdef FEAT_SYN_HL + || curwin->w_p_cul +#endif + ) + && (curwin->w_valid & VALID_CROW) == 0 +# ifdef FEAT_INS_EXPAND + && !pum_visible() +# endif + ) + redraw_later(SOME_VALID); + wp->w_valid |= VALID_CROW|VALID_CHEIGHT; /* validate botline too, if update_screen doesn't do it */ @@ -1172,22 +1186,15 @@ curs_columns(may_scroll) if (prev_skipcol != curwin->w_skipcol) redraw_later(NOT_VALID); - /* Redraw when w_row changes and 'relativenumber' is set */ - if (((curwin->w_valid & VALID_WROW) == 0 && (curwin->w_p_rnu #ifdef FEAT_SYN_HL - /* or when w_row changes and 'cursorline' is set. */ - || curwin->w_p_cul + /* Redraw when w_virtcol changes and 'cursorcolumn' is set */ + if (curwin->w_p_cuc && (curwin->w_valid & VALID_VIRTCOL) == 0 +# ifdef FEAT_INS_EXPAND + && !pum_visible() +# endif + ) + redraw_later(SOME_VALID); #endif - )) -#ifdef FEAT_SYN_HL - /* or when w_virtcol changes and 'cursorcolumn' is set */ - || (curwin->w_p_cuc && (curwin->w_valid & VALID_VIRTCOL) == 0) -#endif - ) -# ifdef FEAT_INS_EXPAND - if (!pum_visible()) -# endif - redraw_later(SOME_VALID); curwin->w_valid |= VALID_WCOL|VALID_WROW|VALID_VIRTCOL; }