fix #385: Options dropdowns — white centered text + size-to-content popup

User gate report (Campaign OP happy-testing round, 2026-08-13): every
Config-tab dropdown drew its text gold + left-aligned and its popup a
fixed 6 rows regardless of item count. All three were unmeasured styling
divergences — the authored data (new probe menuprobe3, live DAT) says:

- button label child 0x10000355: fontColor white, hJustify=Center
- row template 0x1000035A: fontColor white, hJustify=Center
- popup ListBox 0x10000358: edge-docked L=T=R=B=1, the authored condition
  arming retail UIElement_Menu::RecalculatePopupSize @0x0046caf0 —
  popup resizes to the ListBox's summed content height, uncapped
  (0x0046e5f4..0046e66c via ResizeScrollableArea's 0x32 broadcast)

UiMenu gains three opt-in properties (ButtonTextCentered,
ItemTextCentered, PopupSizeToContent) plus retail Open @0x0046cc42's
empty-list gate; chat + vendor keep the class defaults, so their shipped
behavior is untouched. ConfigOptionsPageController.ApplyMenuChrome wires
all four corrections for the 8 Config menus with the probe citation.

The same probe found vendor's authored popup ListBox is ALSO docked while
our vendor dropdown ships G5's fixed 6-row window — filed as #386 +
register row AD-88 (UNCLEAR: the G5 retail screenshot and the decomp
mechanism conflict) instead of silently reworking a user-gated surface.

The "resolution change resizes the window" observation from the same
report is #374's designed windowed-mode behavior (display-mode switching
is #376/#377) — no change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-13 08:51:57 +02:00
parent 028920420d
commit a9b6435f55
8 changed files with 422 additions and 9 deletions

View file

@ -24,6 +24,51 @@ 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.
## #386 — Vendor category dropdown: authored ListBox is edge-docked — retail would size the popup to content, our shipped 6-row window may diverge
**Status:** OPEN — filed 2026-08-13 while fixing #385. The #385 probe
(`OptionsPanelLiveMountProbeTests.ProbeMenuPopupSizingAndTextStyle`,
menuprobe3) measured the vendor category popup's authored ListBox
(`0x21000043/0x10000350`) as edge-docked on all four sides (L=T=R=B=1) —
the exact authored condition that arms retail's
`UIElement_Menu::RecalculatePopupSize @0x0046caf0` size-to-content path
(popup grows/shrinks to the summed row heights, uncapped). Our vendor
dropdown ships G5's fixed 6-row scrollable window instead, which the G5
retail screenshot ("~one-column-with-scrollbar look") appeared to support
and the vendor connected gate user-passed. The two pieces of evidence
conflict: the decomp mechanism says an 18-category popup should open
full-height (~324 px) with an inert stretched scrollbar strip; the G5
screenshot was read as a 6-row scroll window. Next step is a retail
side-by-side of the vendor category dropdown specifically (open the
category menu at a vendor with many categories). If retail shows the
full-height popup, flip `UiMenu.PopupSizeToContent = true` in
`VendorUiController` (one line — the mechanism shipped with #385) and
retire the divergence; if retail truly shows a 6-row window, document WHY
the docked ListBox does not trigger RecalculatePopupSize there (a message
routing difference is plausible: the vendor popup's items are inserted
BEFORE `RegisterForElementMessages`, so the 0x32 broadcast may never reach
the menu). Register row AD-88 (unclear) tracks it.
## #385 — Options-panel dropdowns: gold left-aligned text + fixed 6-row popup (retail: white, centered, size-to-content)
**Status:** DONE 2026-08-13 (this commit). User gate report (Campaign OP
happy-testing round): every Config-tab dropdown (Sound Features,
Resolution, …) drew its text yellow and left-aligned, and the popup a
fixed 6 rows regardless of item count. All three symptoms were
unmeasured-styling divergences in `UiMenu`/`ApplyMenuChrome` — the
authored data (menuprobe3, live-DAT) says: button label child
`0x10000355` white + hJustify=Center; row template `0x1000035A` white +
hJustify=Center; popup ListBox `0x10000358` edge-docked, arming retail's
`RecalculatePopupSize @0x0046caf0` size-to-content resize (content =
summed laid-out row heights, uncapped — `0x0046e5f4..0046e66c`). Fix:
three opt-in `UiMenu` properties (`ButtonTextCentered`, `ItemTextCentered`,
`PopupSizeToContent` — chat + vendor keep class defaults) plus retail's
`Open @0x0046cc42` empty-list gate, wired for all 8 Config menus in
`ConfigOptionsPageController.ApplyMenuChrome`. The resolution-row
"changing resolution resizes the window" observation from the same report
is the #374 designed windowed-mode behavior (true display-mode switching
is #376/#377) — no change.
## #384 — FA6 allegiance-swear bot gate: ACE returns no response to 0x001D swear (no confirmation/0x0020/error)
**Status:** OPEN — filed 2026-08-12 at Campaign FA slice FA6. The two-bot