fix(vtank): popup panels actually show; drop duplicate popup titles; fresh screenshots

Live-verified two real defects the previous commit's design didn't catch
without a running client:

1. Both new popups (mosstank-advanced.xml, mosstank-loot-editor.xml) were
   registered with StartVisible=false, on the theory that the markup's own
   visible="{AdvancedOptionsVisible}"/"{LootEditorVisible}" binding would be
   the sole gate. It is NOT: RetailUiRuntime.MountPlugins wraps every
   plugin window's markup availability in a PluginWindowVisibilityController
   that ANDs it with a SEPARATE "requested visible" axis seeded from
   StartVisible, flipped back to true only by OnShown() — the shelf's
   un-minimize click. A ShowInSidePanel=false window has no shelf entry to
   click, so StartVisible=false left "requested visible" permanently false
   regardless of the markup binding, and both popups never rendered no
   matter how many times the checkbox was toggled (confirmed live: checkbox
   showed checked/green, no window appeared). Fix: StartVisible=true, which
   keeps "requested visible" true from construction (OnHidden only ever
   latches it back to false on a genuine minimize, explicitly no-opping
   when the hide was caused by availability itself going false — exactly
   what closing via "Back" does), leaving the markup binding as the sole
   effective gate, same as the main panel's own always-true
   ShowInSidePanel=true default.

2. Once visible, both popups showed garbled overlapping text at their top
   edge ("AdvancedOptionsced Options — complete VTank settings table",
   "Loot profileRules(first match wins)"): each file's own in-content
   descriptive label duplicated the window's OS-level title bar
   (MarkupDocument.Build auto-renders <panel title="..."> at a fixed (8,4)
   — the exact corner the in-content label used to own back when these
   were in-panel groups with no title bar of their own). Fix: dropped both
   redundant labels; the window's own title ("Advanced Options" caption
   duplicated as "MossTank Advanced Options"/"MossTank Loot Editor") is now
   the only thing there.

Also repositioned both popups' default (x,y) from the placeholder
(440,60) — which overlapped the main panel — to (253,405)/(660,405),
below the main panel, side by side, both fitting within a 720-tall client.

Screenshots recaptured end to end against a live local ACE
(127.0.0.1:9000, testaccount/+Acdream) with the rebuilt Release exe from
this worktree, using an isolated ACDREAM_CONFIG_DIR/ACDREAM_DATA_DIR (no
stale persisted window layout from earlier probe runs — RetailWindowLayoutPersistence
keys plugin windows by name with authoredGeometryRevision=0, so a
previously-opened window's persisted x/y wins over any new authored
default forever; using a scratch config directory sidesteps that rather
than editing the real %APPDATA%\acdream\settings.json). tab-options.png,
tab-profiles.png, tab-vitals.png, and tab-monsters.png confirm the fix
round A grid-scaling and Profiles-cleanup commit's fixes hold on a live
client (no overlap, no gold buttons, no stacked New buttons, no dead
window space); popup-advanced.png and popup-loot-editor.png confirm both
popups now open as genuinely separate windows with clean single titles and
working move-up/move-down DAT icons (no blank button slots).

MossTank suite still 654/654; App markup/plugin/menu filter still
237/237 (no test changes in this commit — the earlier commit's
SecondaryPopupPanelsFitTheirOwnBoundsAndEveryBindingResolves already
covers both files' structure and bindings, and neither the visibility
seeding fix nor the label removal changes what those pins check).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-09-07 09:49:32 +02:00
parent e414b2f56e
commit 78b42a519e
9 changed files with 43 additions and 12 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 1,011 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

After

Width:  |  Height:  |  Size: 1,006 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 250 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 335 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 307 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 KiB

After

Width:  |  Height:  |  Size: 332 KiB

Before After
Before After