aboutsummaryrefslogtreecommitdiff
path: root/src/nvim
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-05-02 23:55:14 +0800
committerGitHub <noreply@github.com>2023-05-02 23:55:14 +0800
commitf186224dfcf86678b6e5ee126d6b9a393f02f634 (patch)
tree0e716a0b7ad78ea4f9d0f97e6e4b7272932656d0 /src/nvim
parent808752f1b09d2f03af5b58167602fef8320c11dc (diff)
downloadrneovim-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.c17
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++;