0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.4.226

Problem:    Cursurline highlighting not redrawn when scrolling. (John
            Marriott)
Solution:   Check for required redraw in two places.
This commit is contained in:
Bram Moolenaar
2014-03-28 21:49:32 +01:00
parent 76f3b1ad77
commit 3d6db1467b
2 changed files with 28 additions and 16 deletions

View File

@@ -20,6 +20,7 @@
#include "vim.h"
static void comp_botline __ARGS((win_T *wp));
static void redraw_for_cursorline __ARGS((win_T *wp));
static int scrolljump_value __ARGS((void));
static int check_top_offset __ARGS((void));
static void curs_rows __ARGS((win_T *wp, int do_botline));
@@ -106,6 +107,7 @@ comp_botline(wp)
#ifdef FEAT_FOLDING
wp->w_cline_folded = folded;
#endif
redraw_for_cursorline(wp);
wp->w_valid |= (VALID_CROW|VALID_CHEIGHT);
}
if (done + n > wp->w_height)
@@ -123,6 +125,27 @@ comp_botline(wp)
set_empty_rows(wp, done);
}
/*
* Redraw when w_cline_row changes and 'relativenumber' or 'cursorline' is
* set.
*/
static void
redraw_for_cursorline(wp)
win_T *wp;
{
if ((wp->w_p_rnu
#ifdef FEAT_SYN_HL
|| wp->w_p_cul
#endif
)
&& (wp->w_valid & VALID_CROW) == 0
# ifdef FEAT_INS_EXPAND
&& !pum_visible()
# endif
)
redraw_win_later(wp, SOME_VALID);
}
/*
* Update curwin->w_topline and redraw if necessary.
* Used to update the screen before printing a message.
@@ -772,20 +795,7 @@ 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);
redraw_for_cursorline(curwin);
wp->w_valid |= VALID_CROW|VALID_CHEIGHT;
/* validate botline too, if update_screen doesn't do it */
@@ -2504,8 +2514,8 @@ onepage(dir, count)
}
comp_botline(curwin);
curwin->w_cursor.lnum = curwin->w_botline - 1;
curwin->w_valid &= ~(VALID_WCOL|VALID_CHEIGHT|
VALID_WROW|VALID_CROW);
curwin->w_valid &=
~(VALID_WCOL|VALID_CHEIGHT|VALID_WROW|VALID_CROW);
}
else
{