summaryrefslogtreecommitdiffstats
path: root/src/popupmnu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/popupmnu.c')
-rw-r--r--src/popupmnu.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/popupmnu.c b/src/popupmnu.c
index 5248217255..0f920dc69e 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