Commit: patch 9.2.0402: pum: opacity not applied to wildmenu pum

2 views
Skip to first unread message

Christian Brabandt

unread,
Apr 27, 2026, 2:15:14 PM (23 hours ago) Apr 27
to vim...@googlegroups.com
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,
/**/
Reply all
Reply to author
Forward
0 new messages