Mercurial > vim
changeset 18597:b10ef01555c8 v8.1.2292
patch 8.1.2292: v:mouse_winid not set on click in popup window
Commit: https://github.com/vim/vim/commit/d002e411c60a231b7c136a84422b3d9bf7b8b4df
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Nov 11 21:45:05 2019 +0100
patch 8.1.2292: v:mouse_winid not set on click in popup window
Problem: v:mouse_winid not set on click in popup window.
Solution: Set v:mouse_winid. (closes https://github.com/vim/vim/issues/5171)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 11 Nov 2019 22:00:03 +0100 |
parents | 2bffaff5d64d |
children | 8ad5734bb66b |
files | runtime/doc/popup.txt src/popupwin.c src/testdir/test_popupwin.vim src/version.c |
diffstat | 4 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/popup.txt +++ b/runtime/doc/popup.txt @@ -863,8 +863,9 @@ Some recommended key actions: Tab accept current suggestion A mouse click arrives as <LeftMouse>. The coordinates are in |v:mouse_col| -and |v:mouse_lnum|. The top-left screen cell of the popup is col 1, row 1 -(not counting the border). +and |v:mouse_lnum|. |v:mouse_winid| holds the window ID, |v:mouse_win| is +always zero. The top-left screen cell of the popup is col 1, row 1 (not +counting the border). Vim provides standard filters |popup_filter_menu()| and |popup_filter_yesno()|.
--- a/src/popupwin.c +++ b/src/popupwin.c @@ -2915,6 +2915,7 @@ invoke_popup_filter(win_T *wp, int c) (void)mouse_comp_pos(wp, &row, &col, &lnum, NULL); set_vim_var_nr(VV_MOUSE_LNUM, lnum); set_vim_var_nr(VV_MOUSE_COL, col + 1); + set_vim_var_nr(VV_MOUSE_WINID, wp->w_id); } }
--- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -2207,6 +2207,7 @@ func Test_popupwin_filter_mouse() func MyPopupFilter(winid, c) let g:got_mouse_col = v:mouse_col let g:got_mouse_lnum = v:mouse_lnum + let g:got_mouse_winid = v:mouse_winid return 0 endfunc @@ -2221,6 +2222,7 @@ func Test_popupwin_filter_mouse() call feedkeys("\<LeftMouse>", 'xt') call assert_equal(1, g:got_mouse_col) call assert_equal(1, g:got_mouse_lnum) + call assert_equal(winid, g:got_mouse_winid) call test_setmouse(5, 8) call feedkeys("\<LeftMouse>", 'xt') @@ -2236,6 +2238,7 @@ func Test_popupwin_filter_mouse() call feedkeys("\<LeftMouse>", 'xt') call assert_equal(13, g:got_mouse_col) call assert_equal(3, g:got_mouse_lnum) + call assert_equal(winid, g:got_mouse_winid) call popup_close(winid) delfunc MyPopupFilter