From 64207dc05c4ddeace6e27ecc4e19bb99d95cdb2a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 28 Dec 2025 09:36:49 +0530 Subject: [PATCH] Ensure tab bar visibility is updated when removing a tab --- kitty/tabs.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/kitty/tabs.py b/kitty/tabs.py index df51f9011..d958b0d64 100644 --- a/kitty/tabs.py +++ b/kitty/tabs.py @@ -1153,13 +1153,6 @@ class TabManager: # {{{ if not visible_before and self.tab_bar_should_be_visible: self.tabbar_visibility_changed() - def _remove_tab(self, tab: Tab) -> None: - visible_before = self.tab_bar_should_be_visible - remove_tab(self.os_window_id, tab.id) - self.tabs.remove(tab) - if visible_before and not self.tab_bar_should_be_visible: - self.tabbar_visibility_changed() - def _set_active_tab(self, idx: int, store_in_history: bool = True) -> None: if store_in_history: self.active_tab_idx = idx @@ -1425,9 +1418,11 @@ class TabManager: # {{{ return t def remove(self, removed_tab: Tab) -> None: + visible_before = self.tab_bar_should_be_visible active_tab_before_removal = self.active_tab tabs = tuple(self.tabs_to_be_shown_in_tab_bar) - self._remove_tab(removed_tab) + remove_tab(self.os_window_id, removed_tab.id) + self.tabs.remove(removed_tab) while True: try: self.active_tab_history.remove(removed_tab.id) @@ -1488,6 +1483,8 @@ class TabManager: # {{{ self._active_tab_idx = 0 self.mark_tab_bar_dirty() removed_tab.destroy() + if self.tab_bar_should_be_visible != visible_before: + self.tabbar_visibility_changed() @property def tab_bar_data(self) -> list[TabBarData]: