# HG changeset patch # User Bram Moolenaar # Date 1395918708 -3600 # Node ID 37af1e6e91bb1e8ceb89d3ba1c49a04ffd889880 # Parent d96e8fbc3747797242cd05c186716c00e85960b3 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. diff --git a/src/move.c b/src/move.c --- 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; } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 219, +/**/ 218, /**/ 217,