patch 9.2.0402: pum: opacity not applied to wildmenu pum
Commit:
https://github.com/vim/vim/commit/7070a85d94faf90fa3c959ad73b5f9db1b947ee9
Author: Yasuhiro Matsumoto <
matt...@gmail.com>
Date: Mon Apr 27 18:05:12 2026 +0000
patch 9.2.0402: pum: opacity not applied to wildmenu pum
Problem: pum: opacity not applied to wildmenu pum
Solution: Call pum_call_update_screen() in cmdline_pum_display() when
opacity is set, fix flicker by checking against expected row
(Yasuhiro Matsumoto).
closes: #20072
Signed-off-by: Yasuhiro Matsumoto <
matt...@gmail.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index befc18c79..478cda25a 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -436,6 +436,8 @@ cmdline_pum_create(
void
cmdline_pum_display(void)
{
+ if (p_po > 0 && p_po < 100 && !pum_redraw_in_same_position())
+ pum_call_update_screen();
pum_display(compl_match_array, compl_match_arraysize, compl_selected);
}
diff --git a/src/popupmenu.c b/src/popupmenu.c
index cadcda7f4..b7929607d 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -1617,8 +1617,12 @@ pum_visible(void)
static int
pum_in_same_position(void)
{
+ int row = (State & MODE_CMDLINE)
+ ? cmdline_row
+ : curwin->w_wrow + W_WINROW(curwin);
+
return pum_window != curwin
- || (pum_win_row == curwin->w_wrow + W_WINROW(curwin)
+ || (pum_win_row == row
&& pum_win_height == curwin->w_height
&& pum_win_col == curwin->w_wincol
&& pum_win_width == curwin->w_width);
diff --git a/src/version.c b/src/version.c
index df55ec4d4..45f571932 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 402,
/**/
401,
/**/