]> granicus.if.org Git - vim/commitdiff
patch 8.1.2292: v:mouse_winid not set on click in popup window v8.1.2292
authorBram Moolenaar <Bram@vim.org>
Mon, 11 Nov 2019 20:45:05 +0000 (21:45 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 11 Nov 2019 20:45:05 +0000 (21:45 +0100)
Problem:    v:mouse_winid not set on click in popup window.
Solution:   Set v:mouse_winid. (closes #5171)

runtime/doc/popup.txt
src/popupwin.c
src/testdir/test_popupwin.vim
src/version.c

index 0dd8d1ac04d4b862a19c5996ca491093cb3f6e59..a74c2adea646ad743e02c39acbcc0910413ce35b 100644 (file)
@@ -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()|.
index 405e6081ac3dac3f205ff003ac3fd2bb3549b68c..66ce30c46565c30cf74591868c47ca1b1c1003b8 100644 (file)
@@ -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);
        }
     }
 
index ad3caa020cb76e1da259ab8450403d82043df3ea..7e9404162fa8d84fd4076078657e1bd3980012fe 100644 (file)
@@ -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
index f2b1a758a7c35674a874d39c674beee80fdfa0ca..0e9b27be5d28d9d0da150ab1473bfcce699f9722 100644 (file)
@@ -741,6 +741,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2292,
 /**/
     2291,
 /**/