diff --git a/src/tau_coding/tui/app.py b/src/tau_coding/tui/app.py index 4ba902c63..7894db162 100644 --- a/src/tau_coding/tui/app.py +++ b/src/tau_coding/tui/app.py @@ -1654,6 +1654,10 @@ class TauTuiApp(App[None]): dock: top; } + Header.-tall { + height: 1; + } + Footer { background: $tau-chrome-background; color: $tau-chrome-text; @@ -2120,7 +2124,7 @@ def get_theme_variable_defaults(self) -> dict[str, str]: def compose(self) -> ComposeResult: """Compose the TUI widgets.""" - yield Header() + yield Header(id="header") with Horizontal(id="workspace"): yield SessionSidebar(id="sidebar") with Vertical(id="main-pane"): diff --git a/tests/test_tui_app.py b/tests/test_tui_app.py index 3ca511d3a..2cb9c3bfc 100644 --- a/tests/test_tui_app.py +++ b/tests/test_tui_app.py @@ -3542,6 +3542,27 @@ async def test_tui_app_notifications_render_literal_markup_text() -> None: assert notification.markup is False +@pytest.mark.anyio +async def test_tui_app_clicking_header_does_not_resize_workspace() -> None: + app = TauTuiApp(FakeSession()) + + async with app.run_test(size=(120, 30)) as pilot: + header = app.query_one("#header") + workspace = app.query_one("#workspace") + sidebar = app.query_one("#sidebar") + assert sidebar.display is True + initial_header_height = header.region.height + initial_workspace_region = workspace.region + initial_sidebar_region = sidebar.region + + await pilot.click("#header") + await pilot.pause() + + assert header.region.height == initial_header_height == 1 + assert workspace.region == initial_workspace_region + assert sidebar.region == initial_sidebar_region + + @pytest.mark.anyio async def test_tui_app_clicking_transcript_refocuses_prompt() -> None: app = TauTuiApp(FakeSession())