patch 8.2.2471: popup_setoptions() does not set textprop in other tab
Problem: Popup_setoptions() does not set textprop in other tab.
Solution: use win_valid_any_tab(). (closes #7788)
diff --git a/src/popupwin.c b/src/popupwin.c
index 0896f17..436238f 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -461,7 +461,7 @@
if (di != NULL)
{
wp->w_popup_prop_win = find_win_by_nr_or_id(&di->di_tv);
- if (!win_valid(wp->w_popup_prop_win))
+ if (!win_valid_any_tab(wp->w_popup_prop_win))
wp->w_popup_prop_win = curwin;
}
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 11b1c4a..0d9d326 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -3813,8 +3813,27 @@
call assert_equal(['textprop', 'textpropid', 'textpropwin'], popup_getoptions(id)->keys()->filter({_, v -> v =~ 'textprop'}))
tabclose
+ call popup_close(id)
bwipe!
call prop_type_delete('textprop')
endfunc
+
+func Test_popup_setoptions_other_tab()
+ new Xfile
+ let winid = win_getid()
+ 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'})
+ tab sp
+ call popup_setoptions(id, #{textprop: 'textprop', textpropwin: winid})
+ call assert_equal(winid, popup_getoptions(id).textpropwin)
+
+ tabclose
+ call popup_close(id)
+ bwipe! Xfile
+ call prop_type_delete('textprop')
+endfunc
+
" vim: shiftwidth=2 sts=2
diff --git a/src/version.c b/src/version.c
index 73bb1e2..2beec07 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2471,
+/**/
2470,
/**/
2469,