diff --git a/docs/changelog.rst b/docs/changelog.rst index 87893624e..aac698a98 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -181,6 +181,9 @@ Detailed list of changes - Add support for Unicode 17 +- Fix a regression in 0.43.0 that caused :opt:`tab_bar_margin_width` to be + doubled on the right edge of the tab bar (:iss:`9154`) + 0.43.1 [2025-10-01] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/kitty/tab_bar.py b/kitty/tab_bar.py index 65def55c8..07ced098b 100644 --- a/kitty/tab_bar.py +++ b/kitty/tab_bar.py @@ -697,14 +697,17 @@ class TabBar: return self.cell_width = cell_width s = self.screen - viewport_width = max(4 * cell_width, tab_bar.width - 2 * self.margin_width) - ncells = viewport_width // cell_width + available_width = tab_bar.width - 2 * self.margin_width + ncells = max(4, available_width // cell_width) s.resize(1, ncells) s.reset_mode(DECAWM) + cell_area_width = ncells * cell_width + available_width_for_left_margin = max(0, tab_bar.width - self.margin_width - cell_area_width) + extra_width = max(0, tab_bar.width - 2 * self.margin_width - cell_area_width) + left_margin = min(self.margin_width + extra_width // 2, available_width_for_left_margin) self.laid_out_once = True - margin = (viewport_width - ncells * cell_width) // 2 + self.margin_width self.window_geometry = g = WindowGeometry( - margin, tab_bar.top, viewport_width - margin, tab_bar.bottom, s.columns, s.lines) + left_margin, tab_bar.top, left_margin + cell_area_width, tab_bar.bottom, s.columns, s.lines) self.update_blank_rects(central, tab_bar, vw, vh) set_tab_bar_render_data(self.os_window_id, self.screen, *g[:4])