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)
 		{
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1522,
+/**/
     1521,
 /**/
     1520,