forked from aniani/vim
patch 8.2.4481: cmdline popup menu not removed when 'lazyredraw' is set
Problem: Cmdline popup menu not removed when 'lazyredraw' is set. Solution: Temporarily reset 'lazyredraw' when removing the popup menu. (closes #9857)
This commit is contained in:
@@ -377,9 +377,13 @@ int cmdline_pum_active(void)
|
|||||||
*/
|
*/
|
||||||
void cmdline_pum_remove(void)
|
void cmdline_pum_remove(void)
|
||||||
{
|
{
|
||||||
|
int save_p_lz = p_lz;
|
||||||
|
|
||||||
pum_undisplay();
|
pum_undisplay();
|
||||||
VIM_CLEAR(compl_match_array);
|
VIM_CLEAR(compl_match_array);
|
||||||
|
p_lz = FALSE; // avoid the popup menu hanging around
|
||||||
update_screen(0);
|
update_screen(0);
|
||||||
|
p_lz = save_p_lz;
|
||||||
redrawcmd();
|
redrawcmd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
src/testdir/dumps/Test_wildmenu_pum_41.dump
Normal file
10
src/testdir/dumps/Test_wildmenu_pum_41.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
| +0&#ffffff0@74
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
| +0#0000001#e0e0e08|a|b@1|r|e|v|i|a|t|e| @4| +0#4040ff13#ffffff0@58
|
||||||
|
| +0#0000001#ffd7ff255|a|b|c|l|e|a|r| @7| +0#4040ff13#ffffff0@58
|
||||||
|
| +0#0000001#ffd7ff255|a|b|o|v|e|l|e|f|t| @5| +0#4040ff13#ffffff0@58
|
||||||
|
| +0#0000001#ffd7ff255|a|b|s|t|r|a|c|t| @6| +0#4040ff13#ffffff0@58
|
||||||
|
|:+0#0000000&|a|b@1|r|e|v|i|a|t|e> @63
|
@@ -2181,6 +2181,11 @@ func Test_wildmenu_pum()
|
|||||||
set tabline=%!MyTabLine()
|
set tabline=%!MyTabLine()
|
||||||
set showtabline=2
|
set showtabline=2
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func DoFeedKeys()
|
||||||
|
let &wildcharm = char2nr("\t")
|
||||||
|
call feedkeys(":edit $VIMRUNTIME/\<Tab>\<Left>\<C-U>ab\<Tab>")
|
||||||
|
endfunc
|
||||||
[CODE]
|
[CODE]
|
||||||
call writefile(commands, 'Xtest')
|
call writefile(commands, 'Xtest')
|
||||||
|
|
||||||
@@ -2378,6 +2383,12 @@ func Test_wildmenu_pum()
|
|||||||
call term_sendkeys(buf, "\<Esc>")
|
call term_sendkeys(buf, "\<Esc>")
|
||||||
call VerifyScreenDump(buf, 'Test_wildmenu_pum_40', {})
|
call VerifyScreenDump(buf, 'Test_wildmenu_pum_40', {})
|
||||||
|
|
||||||
|
" popup is cleared also when 'lazyredraw' is set
|
||||||
|
call term_sendkeys(buf, ":set showtabline=1 laststatus=1 lazyredraw\<CR>")
|
||||||
|
call term_sendkeys(buf, ":call DoFeedKeys()\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_wildmenu_pum_41', {})
|
||||||
|
call term_sendkeys(buf, "\<Esc>")
|
||||||
|
|
||||||
call term_sendkeys(buf, "\<C-U>\<CR>")
|
call term_sendkeys(buf, "\<C-U>\<CR>")
|
||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
call delete('Xtest')
|
call delete('Xtest')
|
||||||
|
@@ -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 */
|
||||||
|
/**/
|
||||||
|
4481,
|
||||||
/**/
|
/**/
|
||||||
4480,
|
4480,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user