Part of epic #595, milestone #9 TUI ShellApp Migration. Follow-on to
#601 (Stage 2), scoped out during its planning. Depends on #601.
Goal
Paint the pieces #601 explicitly skipped because they were raw
frame.buffer_mut()/set_cell writes with no Backend::draw_*
equivalent at the time: window/editor-group divider lines
(render_impl.rs::render_separators and the split-group vertical divider
loop in draw_frame), the tab-drag ghost overlay
(render_tab_drag_overlay), and the tab-hover tooltip overlay.
Scope / known gap
AppShell::render's own generic divider (app_shell.rs::render, the
divider_bounds block) already proves the pattern: a solid-color
StatusBar segment through Backend::draw_status_bar can stand in for a
plain rule line, with no new quadraui primitive needed. Try that first
for the divider-line gap before concluding a new trait method is required.
The tab-drag overlay is coupled to Stage 3's mouse-handling gap (#602,
quadraui#467) — drag state isn't reachable from handle() yet either, so
coordinate sequencing with #602 (this issue can paint the overlay once
drag state exists to paint from, even if #602 lands the input side
separately).
Acceptance
driver_with_shell assertion(s) covering at least the divider-line case
(easiest to verify headlessly — open two windows/a split and assert the
separator glyph appears at the expected column).
cargo test --no-default-features green.
- Anything still deferred called out explicitly in
shell_app.rs's module
doc.
Dependencies
Depends on #601 (and coordinate with #602 for the tab-drag overlay piece
specifically). Blocks #605 (Stage 6 cutover).
Part of epic #595, milestone #9 TUI ShellApp Migration. Follow-on to
#601 (Stage 2), scoped out during its planning. Depends on #601.
Goal
Paint the pieces #601 explicitly skipped because they were raw
frame.buffer_mut()/set_cellwrites with noBackend::draw_*equivalent at the time: window/editor-group divider lines
(
render_impl.rs::render_separatorsand the split-group vertical dividerloop in
draw_frame), the tab-drag ghost overlay(
render_tab_drag_overlay), and the tab-hover tooltip overlay.Scope / known gap
AppShell::render's own generic divider (app_shell.rs::render, thedivider_boundsblock) already proves the pattern: a solid-colorStatusBarsegment throughBackend::draw_status_barcan stand in for aplain rule line, with no new quadraui primitive needed. Try that first
for the divider-line gap before concluding a new trait method is required.
The tab-drag overlay is coupled to Stage 3's mouse-handling gap (#602,
quadraui#467) — drag state isn't reachable from
handle()yet either, socoordinate sequencing with #602 (this issue can paint the overlay once
drag state exists to paint from, even if #602 lands the input side
separately).
Acceptance
driver_with_shellassertion(s) covering at least the divider-line case(easiest to verify headlessly — open two windows/a split and assert the
separator glyph appears at the expected column).
cargo test --no-default-featuresgreen.shell_app.rs's moduledoc.
Dependencies
Depends on #601 (and coordinate with #602 for the tab-drag overlay piece
specifically). Blocks #605 (Stage 6 cutover).