Skip to content

#592-C: GTK live path — paint the remaining chrome (find_replace, tab_switcher, separated_status_line, tab_tooltip) #671

Description

@JDonaghy

Sub-task 3/4 of #592. Read #592 first — it holds the root cause, the full 13-field table, and the evidence that src/gtk/draw.rs has no live callers.

What

Port the remaining four chrome / transient surfaces from the orphaned src/gtk/draw.rs path onto the live GTK ShellApp::render_content path. These are the last of #592's thirteen.

screen.* field dead GTK site
find_replace draw.rs:1833
tab_switcher draw.rs:1896
separated_status_line none — never had a GTK painter
tab_tooltip none — never had a GTK painter

Why this group

Two of these four have no dead GTK painter to port from at all, so they are a different
job from #592-A / #592-B: rather than reviving an orphan, you are writing the first GTK paint
call, using the TUI call site as the reference for which shared adapter to use. Grouped
together so that difference is faced once.

find_replace was confirmed empirically in #592 the same way the command palette was in
#587 — trigger "Edit: Find & Replace" and the overlay state opens while nothing paints:

KEYDBG: OVERLAY STATE OPEN: ["find_replace"]

Design

The TUI line numbers in #592's table are pre-#634. The TUI cutover to run_with_shell
moved those paint sites into src/tui_main/shell_app.rs. Locate the current TUI call site by
symbol, not by the line numbers in that table.

Acceptance criteria

  • All four surfaces paint on GTK, proven by GtkDriver black-box tests (src/gtk/testing.rs,
    harness from Adopt quadraui's GtkDriver — vimcode has zero GTK black-box tests though the harness shipped in quadraui#301 #646) asserting on rendered output — not on ScreenLayout field
    population.
  • Each test fails if its paint call is removed. State in the PR how you verified that.
  • The find/replace overlay opens and paints on GTK — the KEYDBG line above is no longer
    the only evidence it exists.
  • No GTK-only painter added. Any new adapter lands in src/render.rs.
  • TUI behaviour unchanged.
  • cargo build && cargo test EXIT=0.

Files

  • src/gtk/mod.rs
  • src/render.rs
  • src/gtk/testing.rs

Out of scope

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 workingcoordTracked by coord-tui pipelinestatus:readyRefined and ready to enter the work pipelinesub-taskSub-task of a parent issueuiUI/rendering

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions