Files
benilla-octo/crates/benilla-formats
gromandClaude Opus 5 0da710810e An EditBox's engine quads answered nil, and ate the trade window's money row
His trade window has no money amounts: one empty box where the gold/silver/
copper row belongs. The cause is four regions that answer the wrong thing.

pfUI skins that row by walking the gold EditBox's regions for the first
Texture whose texture names "MoneyIcons", showing it, and re-anchoring it to
the right of the box — then the silver box hangs off that icon and the copper
box off the silver one (api/ui-widgets.lua:1225, api/api.lua:1693). Its scan
reads a nil GetTexture() as "no name to match against, take this one".

An EditBox's first four regions are the engine's own: the three selection
highlights and the caret, which GetRegions lists ahead of the authored
<Layers> ones. They paint host-side here, so they carried no texture and no
fill and answered nil — and pfUI took the caret for the gold coin. Silver and
copper then anchored off a zero-size region and the whole row collapsed.

The reference builds those four as colour-set textures, not empty ones, so
GetTexture answers them "Solid Texture" — the string is in WoW.exe, and
pfUI's scan does filter that out. They answer it here now. Nothing renders
differently: the host still draws the highlight and caret from sel_start /
sel_end / caret_shown, and the fill stays unset.

The new test runs pfUI's scan itself rather than asserting on our side of it,
because what matters is which region that loop picks.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SgstFWtn1RxEJ5kVrpgYwn
2026-10-29 09:06:59 -06:00
..