Skip to content

#547: GTK regressions from #515: editor breadcrumbs broken + explorer treeview icons don't use Nerd Fonts (converge on quadraui; fix quadraui gaps first) - #548

Merged
JDonaghy merged 2 commits into
developfrom
issue-547-gtk-regressions-from-515-editor-breadcru
Jul 2, 2026
Merged

#547: GTK regressions from #515: editor breadcrumbs broken + explorer treeview icons don't use Nerd Fonts (converge on quadraui; fix quadraui gaps first)#548
JDonaghy merged 2 commits into
developfrom
issue-547-gtk-regressions-from-515-editor-breadcru

Conversation

@JDonaghy

@JDonaghy JDonaghy commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Closes #547

Automated merge from the coordinator for assignment f64cf7f14851 on issue #547.

Worker branch: issue-547-gtk-regressions-from-515-editor-breadcrudevelop.

JDonaghy and others added 2 commits July 1, 2026 22:41
…pp migration

Both regressions were vimcode-side wiring gaps left by the #540 Relm4→ShellApp
migration, not quadraui primitive gaps:

- Breadcrumbs: the active draw path is `ShellApp::render_content` in
  `src/gtk/mod.rs`, not the legacy `src/gtk/draw.rs::draw_editor` (which has
  zero callers and is dead). `render_content` reserved layout space for the
  breadcrumb row and hit-tested clicks against it, but never actually drew the
  `Surface::StatusBar` for it.
- Icons: quadraui's `GtkBackend` defaults `nerd_fonts_enabled: false`. The
  only call to `Backend::set_nerd_fonts` on GTK lived inside
  `Msg::CacheFontMetrics`, which is never constructed/sent anywhere after
  #540 — a fully dead handler.

Fix: add `render::breadcrumb_draw_targets()` and `render::sync_nerd_fonts()`
shared helpers, called from both backends. This also collapses TUI's
duplicated `segments.is_empty() || terminal_maximized` skip check (present in
its split- and single-group branches) and its bespoke single-group
`is_tab_bar_hidden` y-offset special case (verified equivalent to
`bc.bounds.y`, which already accounts for hidden tab bars via
`adjust_group_rects_for_hidden_tabs`) onto the one shared code path.

Adds two render.rs unit tests: breadcrumb bounds pin the hidden/shown tab-bar
row-offset equivalence that made the TUI unification safe, and explorer tree
rows always carry a distinct glyph/fallback pair.

`Msg::CacheFontMetrics` is left in place (not deleted) despite being dead —
it also drives cached line/char metrics, UI font size, menu bar height, and
terminal PTY resize, which is a larger latent-bug surface out of scope here.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… width filter

- Names the quadraui dependency the previous commit's `sync_nerd_fonts()` (a
  trait-object call to `Backend::set_nerd_fonts`) relies on: quadraui commit
  9613f9c "feat(quadraui): promote set_nerd_fonts to Backend trait (#391)"
  (branch issue-391-add-backend-set-nerd-fonts-to-trait-so-s), landed
  2026-06-29 on quadraui develop. A stale local `~/src/quadraui` checkout
  before that commit will fail to build this vimcode branch with "no method
  named set_nerd_fonts found for &mut dyn Backend" — pull quadraui develop
  before building/testing this branch.
- Adds `test_breadcrumb_draw_targets_offset_terminal_maximized_and_filters`,
  a direct unit test of `render::breadcrumb_draw_targets` covering the
  `terminal_maximized` early return, the `origin_offset` translation
  arithmetic (both TUI's nonzero-offset and GTK's zero-offset conventions),
  the `segments.is_empty()` filter, and the zero-width fallback filter below.
- Folds the zero-width breadcrumb-bounds fallback filter (`min_x == f64::MAX`
  when a group has no matching window rects) into `breadcrumb_draw_targets`
  itself, removing the now-redundant `rect.width > 0.0` guard from both TUI
  call sites — GTK's call site never had this guard, so centralizing it
  removes a footgun instead of asking every backend to remember it.
- Fixes a pre-existing (#515, unrelated to #547) `clippy::type_complexity`
  warning on `ShellApp::cached_tab_slots_abs` by extracting a `TabSlotsAbsMap`
  type alias, matching the existing `TabSlotMap`/`TabCloseAbsMap` pattern —
  needed to keep `cargo clippy -- -D warnings` green for this branch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@JDonaghy
JDonaghy merged commit f7e546d into develop Jul 2, 2026
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.

GTK regressions from #515: editor breadcrumbs broken + explorer treeview icons don't use Nerd Fonts (converge on quadraui; fix quadraui gaps first)

1 participant