diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-05-02 23:55:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-02 23:55:14 +0800 |
commit | f186224dfcf86678b6e5ee126d6b9a393f02f634 (patch) | |
tree | 0e716a0b7ad78ea4f9d0f97e6e4b7272932656d0 /src/nvim | |
parent | 808752f1b09d2f03af5b58167602fef8320c11dc (diff) | |
download | rneovim-f186224dfcf86678b6e5ee126d6b9a393f02f634.tar.gz rneovim-f186224dfcf86678b6e5ee126d6b9a393f02f634.tar.bz2 rneovim-f186224dfcf86678b6e5ee126d6b9a393f02f634.zip |
fix(pum): fix missing rightmost column with 'rightleft' (#23445)
Diffstat (limited to 'src/nvim')
-rw-r--r-- | src/nvim/popupmenu.c | 17 |
1 files changed, 11 insertions, 6 deletions
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++; |