Skip to content

#549: Unify tab-bar draw loop's split-group/single-group duplication (GTK + TUI) - #561

Merged
JDonaghy merged 1 commit into
developfrom
issue-549-unify-tab-bar-draw-loop-s-split-group-si
Jul 5, 2026
Merged

#549: Unify tab-bar draw loop's split-group/single-group duplication (GTK + TUI)#561
JDonaghy merged 1 commit into
developfrom
issue-549-unify-tab-bar-draw-loop-s-split-group-si

Conversation

@JDonaghy

@JDonaghy JDonaghy commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Closes #549

Automated merge from the coordinator for assignment a22265d48115 on issue #549.

Worker branch: issue-549-unify-tab-bar-draw-loop-s-split-group-sidevelop.

Add render::tab_bar_draw_targets(), analogous to #547's
breadcrumb_draw_targets(), collapsing the skip-condition + rect-math
duplication that both GTK's render_content and TUI's draw_frame
independently re-derived in their split-group/single-group tab-bar
branches. Each backend keeps its own draw call and hit-test-geometry
recovery (GTK's Rc<RefCell<...>> pixel-hit caches, TUI's visible-tab
counts), which isn't shareable.

Also closes a latent gap: GTK's split-group loop never filtered
zero-width group bounds (the build_screen_layout fallback for a group
with no matching window rects during a transient split mutation),
unlike TUI's pre-existing `tab_w > 0` guard. The shared helper filters
it uniformly, same as breadcrumb_draw_targets did for breadcrumbs.

No behavior change otherwise: existing tab-bar tests pass unmodified,
plus a new direct unit test for the helper covering single-group
pass-through, split-group reserved-height/offset math, is_tab_bar_hidden
filtering, and the zero-width filter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unify tab-bar draw loop's split-group/single-group duplication (GTK + TUI)

1 participant