You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: icon glyphs keep their ink on their own background
A copy button beside dim text came out half in its own hover highlight
and half on the panel behind it. Thirteen glyphs do this, and the cause
is not width — they advance one column and `unicode-width` is right
about that, and so is a cursor-position report. No terminal monospace
font covers them, so the fallback draws them 1.16 to 1.71 cells wide and
the ink lands on the next cell, which belongs to the next span and
carries whatever style that span brought.
Every span that ends on one now carries the cell its ink lands on, and
every click region, hover rect, dwell tooltip and column budget around an
icon asks `icon_cols` rather than `UnicodeWidthStr::width`. The pad is a
space inside the same span, never a wider measurement: claiming two
columns for a one-column glyph would put every later region on the row a
column right of where it is drawn, which is worse than what it fixes.
The favourites column is two cells now. `★`/`☆` ink 1.42, and
`pad_display` could not supply the overflow cell at a budget of 1 — the
glyph already filled it, so the function returned early and the ink went
onto the kebab gutter beside it.
`🗖` and `🗗` were never two cells. They are single codepoints, which is
what the icon-set rule tests, but their East_Asian_Width is N, so
`unicode-width` reports 1. The comment beside them claimed 2 and said the
button renderer "measures display width, so the 2-cell glyphs lay out
correctly" — it does measure, which is exactly why the wrong number
mattered. `🏷` is the same. `📋`, `🔗` and `❌` are EAW=W, genuinely two,
and were always fine.
The confirm modal had its pad on the wrong side: `" ⧉"` puts a space
before a glyph whose ink spills after it.
The `IconSet` comments are corrected with the code. The header justified
the set by Geometric Shapes coverage, but `↯ ✗ ⚠ ★ ☆ ⧉ ↗ ✕` are Arrows,
Dingbats and Misc Symbols — the rationale never covered the glyphs that
overflow.
Measured against Cascadia Mono and the Segoe UI Symbol it falls back to,
by the screening script in the shefrd tree, and confirmed in a running
instance: the Path row's escape stream now carries `⧉ ` inside one
magenta run where the pad cell used to belong to the next.