From a750ac2288eae4f751185597885552e9b6e4d27c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 9 Sep 2018 15:27:59 +0200 Subject: [PATCH] patch 8.1.0355: incorrect adjusting the popup menu for the preview window Problem: Incorrect adjusting the popup menu for the preview window. Solution: Compute position and height properl. (Ronan Pigott) Also show at least ten items. (closes #3414) --- src/popupmnu.c | 21 +++++++++++++++------ src/version.c | 2 ++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/popupmnu.c b/src/popupmnu.c index 524821725..0f920dc69 100644 --- a/src/popupmnu.c +++ b/src/popupmnu.c @@ -141,8 +141,8 @@ pum_display( if (p_ph > 0 && pum_height > p_ph) pum_height = p_ph; - /* Put the pum below "pum_win_row" if possible. If there are few lines decide - * on where there is more room. */ + /* Put the pum below "pum_win_row" if possible. If there are few lines + * decide on where there is more room. */ if (pum_win_row + 2 >= below_row - pum_height && pum_win_row - above_row > (below_row - above_row) / 2) { @@ -196,11 +196,20 @@ pum_display( return; #if defined(FEAT_QUICKFIX) - /* If there is a preview window at the above avoid drawing over it. */ - if (pvwin != NULL && pum_row < above_row && pum_height > above_row) + // If there is a preview window at the above avoid drawing over it. + // Do keep at least 10 entries. + if (pvwin != NULL && pum_row < above_row && pum_height > 10) { - pum_row += above_row; - pum_height -= above_row; + if (pum_win_row - above_row < 10) + { + pum_row = pum_win_row - 10; + pum_height = 10; + } + else + { + pum_row = above_row; + pum_height = pum_win_row - above_row; + } } #endif diff --git a/src/version.c b/src/version.c index 480d20e8b..26825b9f8 100644 --- a/src/version.c +++ b/src/version.c @@ -794,6 +794,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 355, /**/ 354, /**/