mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.1910: redrawing too much when toggling 'relativenumber'
Problem: Redrawing too much when toggling 'relativenumber'. Solution: Only clear when 'signcolumn' is set to "number". (Yegappan Lakshmanan, closes #4852)
This commit is contained in:
parent
e49fbff384
commit
448262176b
22
src/option.c
22
src/option.c
@ -1986,7 +1986,7 @@ static struct vimoption options[] =
|
||||
(char_u *)&p_nf, PV_NF,
|
||||
{(char_u *)"bin,octal,hex", (char_u *)0L}
|
||||
SCTX_INIT},
|
||||
{"number", "nu", P_BOOL|P_VI_DEF|P_RCLR,
|
||||
{"number", "nu", P_BOOL|P_VI_DEF|P_RWIN,
|
||||
(char_u *)VAR_WIN, PV_NU,
|
||||
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
|
||||
{"numberwidth", "nuw", P_NUM|P_RWIN|P_VIM,
|
||||
@ -2254,7 +2254,7 @@ static struct vimoption options[] =
|
||||
{"regexpengine", "re", P_NUM|P_VI_DEF,
|
||||
(char_u *)&p_re, PV_NONE,
|
||||
{(char_u *)0L, (char_u *)0L} SCTX_INIT},
|
||||
{"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RCLR,
|
||||
{"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RWIN,
|
||||
(char_u *)VAR_WIN, PV_RNU,
|
||||
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
|
||||
{"remap", NULL, P_BOOL|P_VI_DEF,
|
||||
@ -9005,6 +9005,24 @@ set_bool_option(
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(FEAT_SIGNS) && defined(FEAT_GUI)
|
||||
else if (((int *)varp == &curwin->w_p_nu
|
||||
|| (int *)varp == &curwin->w_p_rnu)
|
||||
&& gui.in_use
|
||||
&& (*curwin->w_p_scl == 'n' && *(curwin->w_p_scl + 1) == 'u')
|
||||
&& curbuf->b_signlist != NULL)
|
||||
{
|
||||
// If the 'number' or 'relativenumber' options are modified and
|
||||
// 'signcolumn' is set to 'number', then clear the screen for a full
|
||||
// refresh. Otherwise the sign icons are not displayed properly in the
|
||||
// number column. If the 'number' option is set and only the
|
||||
// 'relativenumber' option is toggled, then don't refresh the screen
|
||||
// (optimization).
|
||||
if (!(curwin->w_p_nu && ((int *)varp == &curwin->w_p_rnu)))
|
||||
redraw_all_later(CLEAR);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_TERMGUICOLORS
|
||||
/* 'termguicolors' */
|
||||
else if ((int *)varp == &p_tgc)
|
||||
|
@ -761,6 +761,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1910,
|
||||
/**/
|
||||
1909,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user