mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.1237: changing 'completepopup' after opening popup has no effect
Problem: Changing 'completepopup' after opening a popup has no effect. (Jay Sitter) Solution: Close the popup when the options are changed. (closes #6471)
This commit is contained in:
@@ -1951,9 +1951,11 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
{not available when compiled without the |+textprop|
|
{not available when compiled without the |+textprop|
|
||||||
or |+quickfix| feature}
|
or |+quickfix| feature}
|
||||||
When 'completeopt' contains "popup" then this option is used for the
|
When 'completeopt' contains "popup" then this option is used for the
|
||||||
properties of the info popup when it is created. You can also use
|
properties of the info popup when it is created. If an info popup
|
||||||
|popup_findinfo()| and then set properties for an existing info popup
|
window already exists it is closed, so that the option value is
|
||||||
with |popup_setoptions()|. See |complete-popup|.
|
applied when it is created again.
|
||||||
|
You can also use |popup_findinfo()| and then set properties for an
|
||||||
|
existing info popup with |popup_setoptions()|. See |complete-popup|.
|
||||||
|
|
||||||
|
|
||||||
*'concealcursor'* *'cocu'*
|
*'concealcursor'* *'cocu'*
|
||||||
|
@@ -2249,6 +2249,8 @@ did_set_string_option(
|
|||||||
{
|
{
|
||||||
if (parse_completepopup(NULL) == FAIL)
|
if (parse_completepopup(NULL) == FAIL)
|
||||||
errmsg = e_invarg;
|
errmsg = e_invarg;
|
||||||
|
else
|
||||||
|
popup_close_info();
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
@@ -4031,6 +4031,18 @@ popup_hide_info(void)
|
|||||||
if (wp != NULL)
|
if (wp != NULL)
|
||||||
popup_hide(wp);
|
popup_hide(wp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Close any info popup.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
popup_close_info(void)
|
||||||
|
{
|
||||||
|
win_T *wp = popup_find_info_window();
|
||||||
|
|
||||||
|
if (wp != NULL)
|
||||||
|
popup_close_with_retval(wp, -1);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -60,6 +60,7 @@ void f_popup_findpreview(typval_T *argvars, typval_T *rettv);
|
|||||||
int popup_create_preview_window(int info);
|
int popup_create_preview_window(int info);
|
||||||
void popup_close_preview(void);
|
void popup_close_preview(void);
|
||||||
void popup_hide_info(void);
|
void popup_hide_info(void);
|
||||||
|
void popup_close_info(void);
|
||||||
int popup_win_closed(win_T *win);
|
int popup_win_closed(win_T *win);
|
||||||
void popup_set_title(win_T *wp);
|
void popup_set_title(win_T *wp);
|
||||||
void popup_update_preview_title(void);
|
void popup_update_preview_title(void);
|
||||||
|
14
src/testdir/dumps/Test_popupwin_infopopup_8.dump
Normal file
14
src/testdir/dumps/Test_popupwin_infopopup_8.dump
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
|a+0&#ffffff0|w|o|r|d| @69
|
||||||
|
|t|e|s|t| |t|a|w|o|r|d> @63
|
||||||
|
|~+0#4040ff13&| @3| +0#0000001#e0e0e08|w|r|d| @4|W| |e|x|t|r|a| |t|e|x|t| @1| +0#0000000#0000001| +0#0000001#e0e0e08|w|o|r|d|s| |a|r|e| |c|o@1|l| | +0#4040ff13#ffffff0@29
|
||||||
|
|~| @3| +0#0000001#ffd7ff255|a|n|o|t|w|r|d| |W| |e|x|t|r|a| |t|e|x|t| @1| +0#0000000#0000001| +0#4040ff13#ffffff0@45
|
||||||
|
|~| @3| +0#0000001#ffd7ff255|n|o|a|w|r|d| @1|W| |e|x|t|r|a| |t|e|x|t| @1| +0#0000000#a8a8a8255| +0#4040ff13#ffffff0@45
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|-+2#0000000&@1| |U|s|e|r| |d|e|f|i|n|e|d| |c|o|m|p|l|e|t|i|o|n| |(|^|U|^|N|^|P|)| |m+0#00e0003&|a|t|c|h| |1| |o|f| |4| +0#0000000&@26
|
@@ -3109,6 +3109,12 @@ func Test_popupmenu_info_border()
|
|||||||
call term_sendkeys(buf, "otest text test text\<C-X>\<C-U>")
|
call term_sendkeys(buf, "otest text test text\<C-X>\<C-U>")
|
||||||
call VerifyScreenDump(buf, 'Test_popupwin_infopopup_7', {})
|
call VerifyScreenDump(buf, 'Test_popupwin_infopopup_7', {})
|
||||||
|
|
||||||
|
" Test that when the option is changed the popup changes.
|
||||||
|
call term_sendkeys(buf, "\<Esc>")
|
||||||
|
call term_sendkeys(buf, ":set completepopup=border:off\<CR>")
|
||||||
|
call term_sendkeys(buf, "a\<C-X>\<C-U>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_popupwin_infopopup_8', {})
|
||||||
|
|
||||||
call term_sendkeys(buf, "\<Esc>")
|
call term_sendkeys(buf, "\<Esc>")
|
||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
call delete('XtestInfoPopup')
|
call delete('XtestInfoPopup')
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1237,
|
||||||
/**/
|
/**/
|
||||||
1236,
|
1236,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user