# HG changeset patch # User Bram Moolenaar # Date 1560710704 -7200 # Node ID 808ea76535a9022ede951f7db105d488fc3c22f0 # Parent d6f065ba684d5b72201fdf0f10173a098f1af613 patch 8.1.1560: popup window hidden option not implemented yet commit https://github.com/vim/vim/commit/6313c4f41d0e1d91b4217557685c014ea919915f Author: Bram Moolenaar Date: Sun Jun 16 20:39:13 2019 +0200 patch 8.1.1560: popup window hidden option not implemented yet Problem: Popup window hidden option not implemented yet. Solution: Implement the hidden option. diff --git a/src/popupwin.c b/src/popupwin.c --- a/src/popupwin.c +++ b/src/popupwin.c @@ -428,6 +428,13 @@ apply_options(win_T *wp, buf_T *buf UNUS semsg(_(e_invarg2), tv_get_string(&di->di_tv)); } + nr = dict_get_number(dict, (char_u *)"hidden"); + if (nr > 0) + { + wp->w_popup_flags |= POPF_HIDDEN; + --wp->w_buffer->b_nwindows; + } + popup_mask_refresh = TRUE; } 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 @@ -1310,7 +1310,7 @@ func Test_notifications() call delete('XtestNotifications') endfunc -function Test_popup_settext() +func Test_popup_settext() if !CanRunVimInTerminal() throw 'Skipped: cannot make screendumps' endif @@ -1352,4 +1352,38 @@ function Test_popup_settext() " clean up call StopVimInTerminal(buf) call delete('XtestPopupSetText') -endfunction +endfunc + +func Test_popup_hidden() + new + + let winid = popup_atcursor('text', {'hidden': 1}) + redraw + call assert_equal(0, popup_getpos(winid).visible) + call popup_close(winid) + + let winid = popup_create('text', {'hidden': 1}) + redraw + call assert_equal(0, popup_getpos(winid).visible) + call popup_close(winid) + + func QuitCallback(id, res) + let s:cb_winid = a:id + let s:cb_res = a:res + endfunc + let winid = popup_dialog('make a choice', {'hidden': 1, + \ 'filter': 'popup_filter_yesno', + \ 'callback': 'QuitCallback', + \ }) + redraw + call assert_equal(0, popup_getpos(winid).visible) + exe "normal anot used by filter\" + call assert_equal('not used by filter', getline(1)) + + call popup_show(winid) + call feedkeys('y', "xt") + call assert_equal(1, s:cb_res) + + bwipe! + delfunc QuitCallback +endfunc diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 1560, +/**/ 1559, /**/ 1558,