feat(ui): double-click-to-buy (AP-171, user-approved) + #353 toolbar text fixes — authored right-justify and two-line name wrap (Fable)
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run
Double-clicking a vendor shop item now buys through the Buy button's exact quantity/price path — retail has NO double-click-to-buy (the named table sweep's negative evidence stands); the user chose the addition explicitly and AP-171 records it. #353 (pre-existing, user-reported): the stack-count entry is AUTHORED HJustify=2 — right-justified flush against the slider on its own row — and UiField already supported RightAligned; nobody had honored the authored value. The name element is AUTHORED two lines tall (H=31, W=140): long names now word-wrap at the authored pixel width onto a second centered row via two stacked one-line labels reusing the existing centered draw path (WrapNameTwoLines: greedy word break, no hyphenation, second row clips like retail). Ten SelectedObjectController structure tests updated from single-label to first-label access. Lesson re-learned the hard way: the first "green" run used a stale TEST assembly (only the App project had been rebuilt) — the clean-room caught it, per feedback_stale_build_artifacts. Full App 4,329/3 and Core 4,381/1 verified green on properly rebuilt assemblies; the one transient Core Release failure did not reproduce and is noted on #351. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
1688863366
commit
d674b99f56
5 changed files with 113 additions and 28 deletions
|
|
@ -24,6 +24,21 @@ What does NOT go here:
|
|||
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
|
||||
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
|
||||
|
||||
## #353 — Toolbar selected-object text: count field ignores authored HJustify; name field does not wrap to its authored two lines
|
||||
|
||||
**Status:** FIXED 2026-08-08 pending the user's look (RightAligned on the authored HJustify=2 entry; two stacked centered one-line labels wrapping at the authored 140 px via WrapNameTwoLines).
|
||||
User gate findings (pre-existing, not vendor-introduced). The authored
|
||||
toolbar layout 0x21000016 is decisive: the stack-count entry 0x100001A3
|
||||
is X=0 Y=13 W=50 H=14 **HJustify=2 (right)** — flush against the slider
|
||||
0x100001A4 at X=50 Y=13 W=90 H=14, same row — but `UiField` has no
|
||||
justify support, so the number renders at the left edge (the user's
|
||||
screenshot). The name field 0x100001A2 is W=140 **H=31 (two lines)**;
|
||||
`UiField` already has WrappedLine machinery but the name widget renders
|
||||
one line, so long names overflow instead of breaking at the authored
|
||||
140 px. Fix: honor HJustify in UiField (right-justify the text run) and
|
||||
engage two-line wrap for the name element per its authored extent —
|
||||
wrap threshold is the authored PIXEL width, not a character count.
|
||||
|
||||
## #352 — Vendor range-watcher cylinder metric: discriminating unit test deferred
|
||||
|
||||
**Status:** OPEN (filed 2026-08-08). The EnforceRange cylinder-gap fix
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue