# HG changeset patch # User Bram Moolenaar # Date 1595795403 -7200 # Node ID 1d1ffb0dbd87e7d850e8405dd192e68aa7b67c8c # Parent fbade715de74ffa527a751c2efb7591bcc862226 patch 8.2.1303: calling popup_setoptions() resets 'signcolumn' Commit: https://github.com/vim/vim/commit/6d585f4c5c8d120f768dd61bfd32f6e57ad562a7 Author: Bram Moolenaar Date: Sun Jul 26 22:20:54 2020 +0200 patch 8.2.1303: calling popup_setoptions() resets 'signcolumn' Problem: Calling popup_setoptions() resets 'signcolumn'. Solution: Only set 'signcolumn' when creating the popup. (closes https://github.com/vim/vim/issues/6542) diff --git a/src/popupwin.c b/src/popupwin.c --- a/src/popupwin.c +++ b/src/popupwin.c @@ -740,8 +740,6 @@ apply_general_options(win_T *wp, dict_T set_string_option_direct_in_win(wp, (char_u *)"wincolor", -1, str, OPT_FREE|OPT_LOCAL, 0); - set_string_option_direct_in_win(wp, (char_u *)"signcolumn", -1, - (char_u *)"no", OPT_FREE|OPT_LOCAL, 0); set_padding_border(dict, wp->w_popup_padding, "padding", 999); set_padding_border(dict, wp->w_popup_border, "border", 1); @@ -946,6 +944,10 @@ apply_options(win_T *wp, dict_T *dict) int nr; apply_move_options(wp, dict); + + set_string_option_direct_in_win(wp, (char_u *)"signcolumn", -1, + (char_u *)"no", OPT_FREE|OPT_LOCAL, 0); + apply_general_options(wp, dict); nr = dict_get_number(dict, (char_u *)"hidden"); diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -3115,6 +3115,11 @@ func Test_popupmenu_info_border() call term_sendkeys(buf, "a\\") call VerifyScreenDump(buf, 'Test_popupwin_infopopup_8', {}) + call term_sendkeys(buf, " \") + call term_sendkeys(buf, ":set completepopup+=width:10\") + call term_sendkeys(buf, "a\\") + call VerifyScreenDump(buf, 'Test_popupwin_infopopup_9', {}) + call term_sendkeys(buf, "\") call StopVimInTerminal(buf) call delete('XtestInfoPopup') @@ -3436,6 +3441,11 @@ func Test_popupwin_atcursor_far_right() normal! ggg$ let winid = popup_atcursor(repeat('x', 500), #{moved: 'any', border: []}) + " 'signcolumn' was getting reset + call setwinvar(winid, '&signcolumn', 'yes') + call popup_setoptions(winid, {'zindex': 1000}) + call assert_equal('yes', getwinvar(winid, '&signcolumn')) + call popup_close(winid) bwipe! set signcolumn& diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1303, +/**/ 1302, /**/ 1301,