aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/popupmnu.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/nvim/popupmnu.c b/src/nvim/popupmnu.c
index 561cb846f1..a715129f8a 100644
--- a/src/nvim/popupmnu.c
+++ b/src/nvim/popupmnu.c
@@ -305,22 +305,25 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed,
&& (col < Columns - p_pw
|| col < Columns - max_width))) {
// align right pum edge with "col"
- if (curwin->w_p_rl) {
+ if (curwin->w_p_rl
+ && col < max_width + pum_scrollbar + 1) {
pum_col = col + max_width + pum_scrollbar + 1;
if (pum_col >= Columns) {
pum_col = Columns - 1;
}
- } else {
- pum_col = col - max_width - pum_scrollbar;
- if (pum_col < 0) {
- pum_col = 0;
+ } else if (!curwin->w_p_rl) {
+ if (col > Columns - max_width - pum_scrollbar) {
+ pum_col = col - max_width - pum_scrollbar;
+ if (pum_col < 0) {
+ pum_col = 0;
+ }
}
}
if (curwin->w_p_rl) {
- pum_width = W_ENDCOL(curwin) - pum_col - pum_scrollbar + 1;
+ pum_width = pum_col - pum_scrollbar + 1;
} else {
- pum_width = pum_col - pum_scrollbar;
+ pum_width = Columns - pum_col - pum_scrollbar;
}
if (pum_width < p_pw) {