diff --git a/docs/changelog.rst b/docs/changelog.rst index 174da49ce..b933729c1 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -176,8 +176,6 @@ Detailed list of changes 0.47.1 [future] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Preserve user-set tab stops across window resizes (previously they were reset to every 8 columns on every resize) - - Fix a regression in the previous release that caused :ac:`copy_or_noop` to stop working correctly (:pull:`10041`) - macOS: Fix a regression in the previous release that caused URLs to be quoted when dropping into shells (:iss:`10054`) @@ -188,6 +186,8 @@ Detailed list of changes - Fix a regression in the previous release that broke dragging of URLs to the shell prompt from programs that dont support MOVE drag operations +- Preserve user-set tab stops across window resizes instead of resetting to 8 column default + 0.47.0 [2026-05-19] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/kitty_tests/screen.py b/kitty_tests/screen.py index 38d265147..43ec474a8 100644 --- a/kitty_tests/screen.py +++ b/kitty_tests/screen.py @@ -541,23 +541,29 @@ class TestScreen(BaseTest): # Grow: existing stops preserved, new columns get default every-8 stops s.resize(s.lines, 30) s.cursor_position(1, 1) - s.tab(); self.ae(s.cursor.x, 4) - s.tab(); self.ae(s.cursor.x, 12) - s.tab(); self.ae(s.cursor.x, 24) # default stop in newly added columns + s.tab() + self.ae(s.cursor.x, 4) + s.tab() + self.ae(s.cursor.x, 12) + s.tab() + self.ae(s.cursor.x, 24) # default stop in newly added columns # Shrink: stops within new width are preserved s.resize(s.lines, 15) s.cursor_position(1, 1) - s.tab(); self.ae(s.cursor.x, 4) - s.tab(); self.ae(s.cursor.x, 12) + s.tab() + self.ae(s.cursor.x, 4) + s.tab() + self.ae(s.cursor.x, 12) # Resize on alt screen also preserves alt-screen tab stops s = self.create_screen(cols=20, lines=2) - parse_bytes(s, b'\x1b[?1049h') # switch to alt screen + parse_bytes(s, b'\x1b[?1049h') # switch to alt screen ] s.clear_tab_stop(3) s.cursor_position(1, 5) s.set_tab_stop() s.resize(s.lines, 30) s.cursor_position(1, 1) - s.tab(); self.ae(s.cursor.x, 4) + s.tab() + self.ae(s.cursor.x, 4) def test_backspace(self): s = self.create_screen()