diff src/window.c @ 9599:42a8a81decdf v7.4.2077

commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jul 19 23:13:03 2016 +0200 patch 7.4.2077 Problem: Cannot update 'tabline' when a tab was closed. Solution: Add the TabClosed autocmd event. (partly by Felipe Morales)
author Christian Brabandt <cb@256bit.org>
date Tue, 19 Jul 2016 23:15:06 +0200
parents 0190d5de215f
children fd9727ae3c49
line wrap: on
line diff
--- a/src/window.c
+++ b/src/window.c
@@ -2095,6 +2095,9 @@ close_windows(
     win_T	*wp;
     tabpage_T   *tp, *nexttp;
     int		h = tabline_height();
+#ifdef FEAT_AUTOCMD
+    int		count = tabpage_index(NULL);
+#endif
 
     ++RedrawingDisabled;
 
@@ -2138,6 +2141,11 @@ close_windows(
 
     --RedrawingDisabled;
 
+#ifdef FEAT_AUTOCMD
+    if (count != tabpage_index(NULL))
+	apply_autocmds(EVENT_TABCLOSED, NULL, NULL, FALSE, curbuf);
+#endif
+
     redraw_tabline = TRUE;
     if (h != tabline_height())
 	shell_new_rows();
@@ -2220,6 +2228,7 @@ close_last_window_tabpage(
 	/* Since goto_tabpage_tp above did not trigger *Enter autocommands, do
 	 * that now. */
 #ifdef FEAT_AUTOCMD
+	apply_autocmds(EVENT_TABCLOSED, NULL, NULL, FALSE, curbuf);
 	apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);
 	apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
 	if (old_curbuf != curbuf)