Skip to content

GTK: tab-group scrollbars drawn on top of maximized terminal (z-order) #167

Description

@JDonaghy

Summary

When the terminal is maximized in GTK with 2+ editor tab groups active, each group's scrollbar continues to draw over the terminal panel. Other chrome (tab bars, breadcrumbs, per-window status) is correctly suppressed or covered; scrollbars are not.

Seen during smoke testing of `#34` follow-up (branch `followup-chrome-helper`, commits `1f516fc`..`387621b`).

Expected

When `engine.terminal_maximized` is true, no editor-area chrome (including scrollbars) should draw on top of the terminal panel. TUI already gets this right because `ratatui` re-lays-out every frame with zero editor height; GTK has independent scrollbar widgets that don't participate in the z-order collapse.

Likely fix

Guard scrollbar draw in `src/gtk/draw.rs` with `!engine.terminal_maximized`, same pattern as the per-window status line suppression added in `fe0f81e`. Scrollbars are drawn from the `draw_scrollbars` pass — add the guard at the top of that section (and possibly in the H-scrollbar pass too).

Deferred rationale

Part of a pattern of band-aids against the row-vs-pixel chrome mismatch (see companion issue). Fixing individual leaks one at a time is the Phase A reality until a proper `Panel`/`Layout` primitive owns the stacking order. Keep this open under the Cross-Platform UI Crate milestone so it can be closed alongside the layout primitive work, not before.

Reference

  • Commit range `1f516fc`..`387621b` on `develop`
  • `quadraui/docs/APP_ARCHITECTURE.md` §"Worked example — terminal maximize"
  • `PLAN.md` §"Lessons learned" (render-time effective values + hit-test parity)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingplatformPlatform-specific (macOS, Windows, Linux)uiUI/rendering

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions