diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-12-16 21:02:56 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-12-16 21:02:56 +0100 |
commit | 530bed993e41bda6f717a8ddd0acb39464f95336 (patch) | |
tree | a1aa53e764388f4248465001970b13e50f5e6111 | |
parent | 9987fb0b4b591e6450fb1dfbe8f615f365057f2a (diff) |
patch 8.2.2147: quickfix window title not updated in all tab pagesv8.2.2147
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)
-rw-r--r-- | src/quickfix.c | 19 | ||||
-rw-r--r-- | src/testdir/test_quickfix.vim | 24 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 38 insertions, 7 deletions
diff --git a/src/quickfix.c b/src/quickfix.c index d7a163dfff..89ca2d31eb 100644 --- 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; + win_T *save_curwin = curwin; - if ((win = qf_find_win(qi)) != NULL) + FOR_ALL_TAB_WINDOWS(tp, win) { - curwin_save = curwin; - curwin = win; - qf_set_title_var(qf_get_curlist(qi)); - curwin = curwin_save; + if (is_qf_win(win, qi)) + { + curwin = win; + qf_set_title_var(qfl); + } } + curwin = save_curwin; } /* diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim index d89508f06a..888c2f4bf9 100644 --- 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() diff --git a/src/version.c b/src/version.c index a95042c15c..f28bb4a43a 100644 --- 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 */ /**/ + 2147, +/**/ 2146, /**/ 2145, |