1
0
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:
Bram Moolenaar
2022-02-27 14:28:31 +00:00
parent cbef12e60b
commit 5c52be40fb
4 changed files with 27 additions and 0 deletions

View File

@@ -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();
} }

View 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

View File

@@ -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')

View File

@@ -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,
/**/ /**/