Mercurial > vim
changeset 14685:17a7d9e71ebb v8.1.0355
patch 8.1.0355: incorrect adjusting the popup menu for the preview window
commit https://github.com/vim/vim/commit/a750ac2288eae4f751185597885552e9b6e4d27c
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Sep 9 15:27:59 2018 +0200
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 09 Sep 2018 15:30:06 +0200 |
parents | 6a6944f44cc8 |
children | 712062d04112 |
files | src/popupmnu.c src/version.c |
diffstat | 2 files changed, 17 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- 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