Mercurial > vim
changeset 23203:db97415750ce v8.2.2147
patch 8.2.2147: quickfix window title not updated in all tab pages
Commit: https://github.com/vim/vim/commit/530bed993e41bda6f717a8ddd0acb39464f95336
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Dec 16 21:02:56 2020 +0100
patch 8.2.2147: quickfix window title not updated in all tab pages
Problem: Quickfix window title not updated in all tab pages.
Solution: Update the quickfix window title in all tab pages. (Yegappan
Lakshmanan, closes #7481, closes #7466)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 16 Dec 2020 21:15:04 +0100 |
parents | 71089c6b385c |
children | a5acdf9557e8 |
files | src/quickfix.c src/testdir/test_quickfix.vim src/version.c |
diffstat | 3 files changed, 41 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -4431,21 +4431,26 @@ qf_process_qftf_option(void) } /* - * Update the w:quickfix_title variable in the quickfix/location list window + * Update the w:quickfix_title variable in the quickfix/location list window in + * all the tab pages. */ static void qf_update_win_titlevar(qf_info_T *qi) { + qf_list_T *qfl = qf_get_curlist(qi); + tabpage_T *tp; win_T *win; - win_T *curwin_save; - - if ((win = qf_find_win(qi)) != NULL) - { - curwin_save = curwin; - curwin = win; - qf_set_title_var(qf_get_curlist(qi)); - curwin = curwin_save; - } + win_T *save_curwin = curwin; + + FOR_ALL_TAB_WINDOWS(tp, win) + { + if (is_qf_win(win, qi)) + { + curwin = win; + qf_set_title_var(qfl); + } + } + curwin = save_curwin; } /*
--- a/src/testdir/test_quickfix.vim +++ b/src/testdir/test_quickfix.vim @@ -4165,6 +4165,30 @@ func Test_qftitle() call setqflist([], 'r', {'items' : [{'filename' : 'a.c', 'lnum' : 10}]}) call assert_equal('Errors', w:quickfix_title) cclose + + " Switching to another quickfix list in one tab page should update the + " quickfix window title and statusline in all the other tab pages also + call setqflist([], 'f') + %bw! + cgetexpr ['file_one:1:1: error in the first quickfix list'] + call setqflist([], 'a', {'title': 'first quickfix list'}) + cgetexpr ['file_two:2:1: error in the second quickfix list'] + call setqflist([], 'a', {'title': 'second quickfix list'}) + copen + wincmd t + tabnew two + copen + wincmd t + colder + call assert_equal('first quickfix list', gettabwinvar(1, 2, 'quickfix_title')) + call assert_equal('first quickfix list', gettabwinvar(2, 2, 'quickfix_title')) + call assert_equal(1, tabpagewinnr(1)) + call assert_equal(1, tabpagewinnr(2)) + tabnew + call setqflist([], 'a', {'title': 'new quickfix title'}) + call assert_equal('new quickfix title', gettabwinvar(1, 2, 'quickfix_title')) + call assert_equal('new quickfix title', gettabwinvar(2, 2, 'quickfix_title')) + %bw! endfunc func Test_lbuffer_with_bwipe()