Mercurial > vim
changeset 15484:882bbbdc9c76 v8.1.0750
patch 8.1.0750: when the last sign is deleted the signcolumn may remain
commit https://github.com/vim/vim/commit/8144acbec33b751788a7912e2d880c083c6cfe93
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jan 14 23:08:18 2019 +0100
patch 8.1.0750: when the last sign is deleted the signcolumn may remain
Problem: When the last sign is deleted the signcolumn may not be removed
even though 'signcolumn' is "auto".
Solution: When deleting the last sign redraw the buffer. (Dominique Pelle,
closes #3803, closes #3804)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 14 Jan 2019 23:15:05 +0100 |
parents | 09803c73b55c |
children | d4b1701c77d2 |
files | src/sign.c src/version.c |
diffstat | 2 files changed, 10 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/sign.c +++ b/src/sign.c @@ -374,8 +374,8 @@ buf_change_sign_type( /* * Return the type number of the sign at line number 'lnum' in buffer 'buf' - * which has the attribute specifed by 'type'. Returns 0 if a sign is not found - * at the line number or it doesn't have the specified attribute. + * which has the attribute specified by 'type'. Returns 0 if a sign is not + * found at the line number or it doesn't have the specified attribute. */ int buf_getsigntype( @@ -442,7 +442,7 @@ buf_delsign( redraw_buf_line_later(buf, lnum); // Check whether only one sign needs to be deleted - // If deleting a sign with a specific identifer in a particular + // If deleting a sign with a specific identifier in a particular // group or deleting any sign at a particular line number, delete // only one sign. if (group == NULL @@ -455,9 +455,12 @@ buf_delsign( } // When deleting the last sign the cursor position may change, because the - // sign columns no longer shows. + // sign columns no longer shows. And the 'signcolumn' may be hidden. if (buf->b_signlist == NULL) + { + redraw_buf_later(buf, NOT_VALID); changed_cline_bef_curs(); + } return lnum; } @@ -894,7 +897,7 @@ sign_list_by_name(char_u *name) } /* - * Place a sign at the specifed file location or update a sign. + * Place a sign at the specified file location or update a sign. */ int sign_place(