1
0
forked from aniani/vim

patch 9.1.0525: Right release selects immediately when pum is truncated.

Problem:  Right release selects immediately when pum is truncated.
Solution: Use pum_height instead of pum_size when checking click row.
          Don't place it above mouse row when there is more space below.
          (zeertzjq)

fixes: #15101
closes: #15102

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2024-07-04 17:26:37 +02:00
committed by Christian Brabandt
parent 7ccd1a2e85
commit 761a420c66
3 changed files with 44 additions and 6 deletions

View File

@@ -1332,9 +1332,10 @@ pum_set_event_info(dict_T *dict)
static void
pum_position_at_mouse(int min_width)
{
if (Rows - mouse_row > pum_size)
if (Rows - mouse_row > pum_size || Rows - mouse_row > mouse_row)
{
// Enough space below the mouse row.
// Enough space below the mouse row,
// or there is more space below the mouse row than above.
pum_row = mouse_row + 1;
if (pum_height > Rows - pum_row)
pum_height = Rows - pum_row;
@@ -1633,7 +1634,7 @@ pum_select_mouse_pos(void)
{
int idx = mouse_row - pum_row;
if (idx < 0 || idx >= pum_size)
if (idx < 0 || idx >= pum_height)
pum_selected = -1;
else if (*pum_array[idx].pum_text != NUL)
pum_selected = idx;