Mercurial > vim
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