mirror of
https://github.com/nyakang/nyaterm.git
synced 2026-10-04 08:00:50 +00:00
`Svg::paint` does `self.path.zip(style.text.color)`, and `compute_style` starts from `Style::default()`, whose `text.color` is `None`. A parent's `.text_color(..)` cascades to real text but never to an `svg()` child, so a glyph without a colour of its own was skipped entirely at paint time — no error, no fallback, just an invisible icon still taking up layout. 59 call sites were affected: the window minimise/maximise/close controls, tab close buttons, the title bar, the quick-command toolbar, the transfer browser and queue, tunnels, settings and the AI panels. Shared button helpers are fixed first, so most sites are covered by ~10 functions. Where the parent brightened the icon on hover, the pair becomes `.group(..)` plus `.group_hover(..)`, since a `.hover()` refinement cannot reach a child either. `scripts/check-icon-references.sh` now fails on an `svg()` whose chain has a `.path(..)` but no `.text_color(..)`. It checks depth 0 only: a colour that lives solely inside `.group_hover(.., |s| s.text_color(..))` still leaves the icon invisible until the pointer is over it.