Mercurial > vim
changeset 13296:67345bc7fe31 v8.0.1522
patch 8.0.1522: popup menu is positioned in the wrong place
commit https://github.com/vim/vim/commit/4287ed33ddc324d26dd05d3e19596dd74cf479d6
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 17 20:35:29 2018 +0100
patch 8.0.1522: popup menu is positioned in the wrong place
Problem: Popup menu is positioned in the wrong place. (Davit Samvelyan,
Boris Staletic)
Solution: Correct computation of the column and the conditions for that.
(Hirohito Higashi, closes #2640)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 17 Feb 2018 20:45:05 +0100 |
parents | f865fbf44232 |
children | 46d884aa4d75 |
files | src/popupmnu.c src/version.c |
diffstat | 2 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/popupmnu.c +++ b/src/popupmnu.c @@ -252,26 +252,30 @@ pum_display( { /* align right pum edge with "col" */ #ifdef FEAT_RIGHTLEFT - 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 + else if (!curwin->w_p_rl) #endif { - pum_col = col - max_width - pum_scrollbar; - if (pum_col < 0) - pum_col = 0; + if (col > Columns - max_width - pum_scrollbar) + { + pum_col = Columns - max_width - pum_scrollbar; + if (pum_col < 0) + pum_col = 0; + } } #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) - pum_width = W_ENDCOL(curwin) - pum_col - pum_scrollbar + 1; + pum_width = pum_col - pum_scrollbar + 1; else #endif - pum_width = pum_col - pum_scrollbar; + pum_width = Columns - pum_col - pum_scrollbar; if (pum_width < p_pw) {