summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-06-24 05:45:14 +0200
committerBram Moolenaar <Bram@vim.org>2019-06-24 05:45:14 +0200
commit2b044ffb5ada77e6fa89779d6532ea9fae3fe029 (patch)
treecc163bbec466fe54c7ac6c0b4a341519457758bd
parentb2cda0dd1d9c9e47e21c59b8d40845210ab83f69 (diff)
downloadvim-git-2b044ffb5ada77e6fa89779d6532ea9fae3fe029.tar.gz
patch 8.1.1587: redraw problem when sign icons in the number columnv8.1.1587
Problem: Redraw problem when sign icons in the number column. Solution: Clear and redraw when changing related options. Right aligh the sign icon in the GUI. (Yegappan Lakshmanan, closes #4578)
-rw-r--r--src/gui.c5
-rw-r--r--src/option.c6
-rw-r--r--src/version.c2
3 files changed, 9 insertions, 4 deletions
diff --git a/src/gui.c b/src/gui.c
index 568918227..634f3fbc5 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -2253,6 +2253,7 @@ gui_outstr_nowrap(
int col = gui.col;
#ifdef FEAT_SIGN_ICONS
int draw_sign = FALSE;
+ int signcol = 0;
char_u extra[18];
# ifdef FEAT_NETBEANS_INTG
int multi_sign = FALSE;
@@ -2287,6 +2288,8 @@ gui_outstr_nowrap(
if (len == 1 && col > 0)
--col;
len = (int)STRLEN(s);
+ if (len > 2)
+ signcol = len - 3; // Right align sign icon in the number column
draw_sign = TRUE;
highlight_mask = 0;
}
@@ -2612,7 +2615,7 @@ gui_outstr_nowrap(
#ifdef FEAT_SIGN_ICONS
if (draw_sign)
/* Draw the sign on top of the spaces. */
- gui_mch_drawsign(gui.row, col, gui.highlight_mask);
+ gui_mch_drawsign(gui.row, signcol, gui.highlight_mask);
# if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
|| defined(FEAT_GUI_GTK) || defined(FEAT_GUI_MSWIN))
if (multi_sign)
diff --git a/src/option.c b/src/option.c
index a1cddcf59..941ea66ff 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1985,7 +1985,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_RWIN,
+ {"number", "nu", P_BOOL|P_VI_DEF|P_RCLR,
(char_u *)VAR_WIN, PV_NU,
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"numberwidth", "nuw", P_NUM|P_RWIN|P_VIM,
@@ -2252,7 +2252,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_RWIN,
+ {"relativenumber", "rnu", P_BOOL|P_VI_DEF|P_RCLR,
(char_u *)VAR_WIN, PV_RNU,
{(char_u *)FALSE, (char_u *)0L} SCTX_INIT},
{"remap", NULL, P_BOOL|P_VI_DEF,
@@ -2497,7 +2497,7 @@ static struct vimoption options[] =
{"sidescrolloff", "siso", P_NUM|P_VI_DEF|P_VIM|P_RBUF,
(char_u *)&p_siso, PV_SISO,
{(char_u *)0L, (char_u *)0L} SCTX_INIT},
- {"signcolumn", "scl", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN,
+ {"signcolumn", "scl", P_STRING|P_ALLOCED|P_VI_DEF|P_RCLR,
#ifdef FEAT_SIGNS
(char_u *)VAR_WIN, PV_SCL,
{(char_u *)"auto", (char_u *)0L}
diff --git a/src/version.c b/src/version.c
index 9d2f26cbb..37f9e61c6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1587,
+/**/
1586,
/**/
1585,