Commit: patch 9.1.1745: tabpanel: not properly redraw after wildmenu

1 view
Skip to first unread message

Christian Brabandt

unread,
Sep 9, 2025, 3:15:17 PM (3 days ago) Sep 9
to vim...@googlegroups.com
patch 9.1.1745: tabpanel: not properly redraw after wildmenu

Commit: https://github.com/vim/vim/commit/95593facd789a1ea6e93d5bc11719039bc1a1472
Author: Hirohito Higashi <h.eas...@gmail.com>
Date: Tue Sep 9 15:11:13 2025 -0400

patch 9.1.1745: tabpanel: not properly redraw after wildmenu

Problem: tabpanel: not properly redraw after wildmenu
(ddad431)
Solution: Mark tabpanel to be redrawn (Hirohito Higashi).

fixes: #18209
closes: #18252

Signed-off-by: Hirohito Higashi <h.eas...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index a3a8e467e..fdfafcbba 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -4501,6 +4501,9 @@ wildmenu_cleanup(cmdline_info_T *cclp UNUSED)
p_ls = save_p_ls;
p_wmh = save_p_wmh;
last_status(FALSE);
+#if defined(FEAT_TABPANEL)
+ redraw_tabpanel = TRUE;
+#endif
update_screen(UPD_VALID); // redraw the screen NOW
redrawcmd();
save_p_ls = -1;
diff --git a/src/testdir/dumps/Test_tabpanel_with_cmdline_no_pum_0.dump b/src/testdir/dumps/Test_tabpanel_with_cmdline_no_pum_0.dump
new file mode 100644
index 000000000..e665e2536
--- /dev/null
+++ b/src/testdir/dumps/Test_tabpanel_with_cmdline_no_pum_0.dump
@@ -0,0 +1,10 @@
+|[+8#0000001#e0e0e08|N|o| |N|a|m|e|]| @11|[|N|o| |N|a|m|e|]| | +2#0000000#ffffff0|a@2| | +1&&@7|X+8#0000001#e0e0e08
+|a+2#0000000#ffffff0@2| @16> +0&&@24
+| +1&&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +0#0000000&@44
diff --git a/src/testdir/dumps/Test_tabpanel_with_cmdline_no_pum_1.dump b/src/testdir/dumps/Test_tabpanel_with_cmdline_no_pum_1.dump
new file mode 100644
index 000000000..4b61a682d
--- /dev/null
+++ b/src/testdir/dumps/Test_tabpanel_with_cmdline_no_pum_1.dump
@@ -0,0 +1,10 @@
+|[+8#0000001#e0e0e08|N|o| |N|a|m|e|]| @11|[|N|o| |N|a|m|e|]| | +2#0000000#ffffff0|a@2| | +1&&@7|X+8#0000001#e0e0e08
+|a+2#0000000#ffffff0@2| @16| +0&&@24
+| +1&&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+| +1#0000000&@19|~+0#4040ff13&| @23
+|t+0#0000001#ffff4012|a|b|n|e|w| +3#0000000#ffffff0@1|t|a|b|n|e|x|t| @29
+|:+0&&|t|a|b|n|e|w> @37
diff --git a/src/testdir/test_tabpanel.vim b/src/testdir/test_tabpanel.vim
index ecc12b59b..65c736276 100644
--- a/src/testdir/test_tabpanel.vim
+++ b/src/testdir/test_tabpanel.vim
@@ -147,6 +147,7 @@ function Test_tabpanel_mouse()
call feedkeys("\<LeftRelease>", 'xt')
call assert_equal(3, tabpagenr())

+ " Test getmousepos()
call feedkeys("\<LeftMouse>", 'xt')
call test_setmouse(2, 3)
let pos = getmousepos()
@@ -770,4 +771,27 @@ function Test_tabpanel_with_cmdline_pum()

call StopVimInTerminal(buf)
endfunc
+
+function Test_tabpanel_with_cmdline_no_pum()
+ CheckScreendump
+
+ let lines =<< trim END
+ set showtabpanel=2
+ set noruler
+ tabnew aaa
+ set wildoptions-=pum
+ END
+ call writefile(lines, 'XTest_tabpanel_with_cmdline_pum', 'D')
+
+ let buf = RunVimInTerminal('-S XTest_tabpanel_with_cmdline_pum', {'rows': 10, 'cols': 45})
+ call term_sendkeys(buf, "\<C-L>")
+ call VerifyScreenDump(buf, 'Test_tabpanel_with_cmdline_no_pum_0', {})
+ call term_sendkeys(buf, ":tabne\<Tab>")
+ call VerifyScreenDump(buf, 'Test_tabpanel_with_cmdline_no_pum_1', {})
+ call term_sendkeys(buf, "\<Esc>\<C-L>")
+ call VerifyScreenDump(buf, 'Test_tabpanel_with_cmdline_no_pum_0', {})
+
+ call StopVimInTerminal(buf)
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index ca232eef1..46a2bd232 100644
--- a/src/version.c
+++ b/src/version.c
@@ -724,6 +724,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1745,
/**/
1744,
/**/
Reply all
Reply to author
Forward
0 new messages