diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-02-27 14:28:31 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-02-27 14:28:31 +0000 |
commit | 5c52be40fbab14e050d7494d85be9039f07f7f8f (patch) | |
tree | b9213579bc23bf98a1521588960bb13f5f967fdf /src | |
parent | cbef12e60b2c5a4f026172ab9873deaab2e70cf2 (diff) |
patch 8.2.4481: cmdline popup menu not removed when 'lazyredraw' is setv8.2.4481
Problem: Cmdline popup menu not removed when 'lazyredraw' is set.
Solution: Temporarily reset 'lazyredraw' when removing the popup menu.
(closes #9857)
Diffstat (limited to 'src')
-rw-r--r-- | src/cmdexpand.c | 4 | ||||
-rw-r--r-- | src/testdir/dumps/Test_wildmenu_pum_41.dump | 10 | ||||
-rw-r--r-- | src/testdir/test_cmdline.vim | 11 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 27 insertions, 0 deletions
diff --git a/src/cmdexpand.c b/src/cmdexpand.c index 84dc643424..e9db8cfc95 100644 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -377,9 +377,13 @@ int cmdline_pum_active(void) */ void cmdline_pum_remove(void) { + int save_p_lz = p_lz; + pum_undisplay(); VIM_CLEAR(compl_match_array); + p_lz = FALSE; // avoid the popup menu hanging around update_screen(0); + p_lz = save_p_lz; redrawcmd(); } diff --git a/src/testdir/dumps/Test_wildmenu_pum_41.dump b/src/testdir/dumps/Test_wildmenu_pum_41.dump new file mode 100644 index 0000000000..6f23d92686 --- /dev/null +++ b/src/testdir/dumps/Test_wildmenu_pum_41.dump @@ -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 diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index d7e46d9898..d7a8c4a3fc 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -2181,6 +2181,11 @@ func Test_wildmenu_pum() set tabline=%!MyTabLine() set showtabline=2 endfunc + + func DoFeedKeys() + let &wildcharm = char2nr("\t") + call feedkeys(":edit $VIMRUNTIME/\<Tab>\<Left>\<C-U>ab\<Tab>") + endfunc [CODE] call writefile(commands, 'Xtest') @@ -2378,6 +2383,12 @@ func Test_wildmenu_pum() call term_sendkeys(buf, "\<Esc>") 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 StopVimInTerminal(buf) call delete('Xtest') diff --git a/src/version.c b/src/version.c index b9b6aac63b..11b4bd58b6 100644 --- 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 */ /**/ + 4481, +/**/ 4480, /**/ 4479, |