diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-11-11 21:45:05 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-11-11 21:45:05 +0100 |
commit | d002e411c60a231b7c136a84422b3d9bf7b8b4df (patch) | |
tree | b5213a74e07f8b0d2ea32617f7870fa769c243f3 | |
parent | adf4aa200b026dce91dd169143ee8b93e848ec8b (diff) | |
download | vim-git-d002e411c60a231b7c136a84422b3d9bf7b8b4df.tar.gz |
patch 8.1.2292: v:mouse_winid not set on click in popup windowv8.1.2292
Problem: v:mouse_winid not set on click in popup window.
Solution: Set v:mouse_winid. (closes #5171)
-rw-r--r-- | runtime/doc/popup.txt | 5 | ||||
-rw-r--r-- | src/popupwin.c | 1 | ||||
-rw-r--r-- | src/testdir/test_popupwin.vim | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 9 insertions, 2 deletions
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt index 0dd8d1ac0..a74c2adea 100644 --- 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()|. diff --git a/src/popupwin.c b/src/popupwin.c index 405e6081a..66ce30c46 100644 --- 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); } } diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim index ad3caa020..7e9404162 100644 --- 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 diff --git a/src/version.c b/src/version.c index f2b1a758a..0e9b27be5 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2292, +/**/ 2291, /**/ 2290, |