diff --git a/src/nvim/window.c b/src/nvim/window.c index 301dc93026..89228e1b0f 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -1719,6 +1719,7 @@ close_windows ( { tabpage_T *tp, *nexttp; int h = tabline_height(); + int count = tabpage_index(NULL); ++RedrawingDisabled; @@ -1755,9 +1756,14 @@ close_windows ( --RedrawingDisabled; - redraw_tabline = TRUE; - if (h != tabline_height()) + if (count != tabpage_index(NULL)) { + apply_autocmds(EVENT_TABCLOSED, NULL, NULL, false, curbuf); + } + + redraw_tabline = true; + if (h != tabline_height()) { shell_new_rows(); + } } /// Check that current window is the last one. diff --git a/test/functional/autocmd/autocmd_spec.lua b/test/functional/autocmd/autocmd_spec.lua index 162e112047..c38bd75c69 100644 --- a/test/functional/autocmd/autocmd_spec.lua +++ b/test/functional/autocmd/autocmd_spec.lua @@ -12,8 +12,8 @@ describe('autocmds:', function() local expected = { 'WinLeave', 'TabLeave', - 'TabNew', 'WinEnter', + 'TabNew', 'TabEnter', 'BufLeave', 'BufEnter'