changeset 23857:16a19892e22e v8.2.2470

patch 8.2.2470: popup_getoptions() does not get textprop from other tab Commit: https://github.com/vim/vim/commit/650264367725af6740b94cfd24d9f5caf0e91356 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 6 14:22:32 2021 +0100 patch 8.2.2470: popup_getoptions() does not get textprop from other tab Problem: Popup_getoptions() does not get textprop from other tab. Solution: use win_valid_any_tab(). (closes https://github.com/vim/vim/issues/7786)
author Bram Moolenaar <Bram@vim.org>
date Sat, 06 Feb 2021 14:30:04 +0100
parents 6f1eb8fe8b9b
children 970d9e1bbbab
files src/popupwin.c src/testdir/test_popupwin.vim src/version.c
diffstat 3 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -2983,7 +2983,7 @@ f_popup_getoptions(typval_T *argvars, ty
 	dict_add_number(dict, "scrollbar", wp->w_want_scrollbar);
 	dict_add_number(dict, "zindex", wp->w_zindex);
 	dict_add_number(dict, "fixed", wp->w_popup_fixed);
-	if (wp->w_popup_prop_type && win_valid(wp->w_popup_prop_win))
+	if (wp->w_popup_prop_type && win_valid_any_tab(wp->w_popup_prop_win))
 	{
 	    proptype_T *pt = text_prop_type_by_id(
 				 wp->w_popup_prop_win->w_buffer,
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -3803,4 +3803,18 @@ func Test_popup_filter_menu()
   call feedkeys("\<c-n>\<c-n>\<c-p>\<cr>", 'xt')
 endfunc
 
+func Test_popup_getoptions_other_tab()
+  new
+  call setline(1, 'some text')
+  call prop_type_add('textprop', {})
+  call prop_add(1, 1, #{type: 'textprop', length: 1})
+  let id = popup_create('TEST', #{textprop: 'textprop', highlight: 'ErrorMsg', tabpage: 1})
+  tab sp
+  call assert_equal(['textprop', 'textpropid', 'textpropwin'], popup_getoptions(id)->keys()->filter({_, v -> v =~ 'textprop'}))
+
+  tabclose
+  bwipe!
+  call prop_type_delete('textprop')
+endfunc
+
 " vim: shiftwidth=2 sts=2
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2470,
+/**/
     2469,
 /**/
     2468,