1
0
forked from aniani/vim

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 #7786)
This commit is contained in:
Bram Moolenaar
2021-02-06 14:22:32 +01:00
parent f5a5116a96
commit 6502643677
3 changed files with 17 additions and 1 deletions

View File

@@ -2983,7 +2983,7 @@ f_popup_getoptions(typval_T *argvars, typval_T *rettv)
dict_add_number(dict, "scrollbar", wp->w_want_scrollbar); dict_add_number(dict, "scrollbar", wp->w_want_scrollbar);
dict_add_number(dict, "zindex", wp->w_zindex); dict_add_number(dict, "zindex", wp->w_zindex);
dict_add_number(dict, "fixed", wp->w_popup_fixed); 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( proptype_T *pt = text_prop_type_by_id(
wp->w_popup_prop_win->w_buffer, wp->w_popup_prop_win->w_buffer,

View File

@@ -3803,4 +3803,18 @@ func Test_popup_filter_menu()
call feedkeys("\<c-n>\<c-n>\<c-p>\<cr>", 'xt') call feedkeys("\<c-n>\<c-n>\<c-p>\<cr>", 'xt')
endfunc 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 " vim: shiftwidth=2 sts=2

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2470,
/**/ /**/
2469, 2469,
/**/ /**/