From f186224dfcf86678b6e5ee126d6b9a393f02f634 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 2 May 2023 23:55:14 +0800 Subject: fix(pum): fix missing rightmost column with 'rightleft' (#23445) --- src/nvim/popupmenu.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/nvim') diff --git a/src/nvim/popupmenu.c b/src/nvim/popupmenu.c index 3246ef2c71..e3166b0c02 100644 --- a/src/nvim/popupmenu.c +++ b/src/nvim/popupmenu.c @@ -435,15 +435,20 @@ void pum_redraw(void) int col_off = 0; bool extra_space = false; if (pum_rl) { - col_off = pum_width; - if (pum_col < curwin->w_wincol + curwin->w_width - 1) { + col_off = pum_width - 1; + assert(!(State & MODE_CMDLINE)); + int win_end_col = ui_has(kUIMultigrid) ? curwin->w_grid.cols : W_ENDCOL(curwin); + if (pum_col < win_end_col - 1) { grid_width += 1; extra_space = true; } - } else if (pum_col > 0) { - grid_width += 1; - col_off = 1; - extra_space = true; + } else { + int min_col = (!(State & MODE_CMDLINE) && ui_has(kUIMultigrid)) ? -curwin->w_wincol : 0; + if (pum_col > min_col) { + grid_width += 1; + col_off = 1; + extra_space = true; + } } if (pum_scrollbar > 0) { grid_width++; -- cgit