feat(ui): persist retained window layouts

This commit is contained in:
Erik 2026-07-10 23:17:29 +02:00
parent a8e9503d2e
commit 921c388e2c
22 changed files with 705 additions and 141 deletions

View file

@ -259,15 +259,21 @@ scrollbar buttons, track/thumb dragging, wheel scrolling, and bottom-pin behavio
### 2.3 Persist the complete UI layout
- [ ] Replace radar-only persistence with `UiWindowLayout` containing position,
- [x] Replace radar-only persistence with `UiWindowLayout` containing position,
size, visibility, collapsed/maximized state, and any retail-persisted panel state.
- [ ] Key layouts by character and resolution, matching retail `saveui/loadui`
- [x] Key layouts by character and resolution, matching retail `saveui/loadui`
semantics; add migration from existing radar entries.
- [ ] Restore only after the character context and screen size are known; clamp
- [x] Restore only after the character context and screen size are known; clamp
safely on resolution changes.
- [ ] Save move/resize on interaction completion, visibility on transition, and
- [x] Save move/resize on interaction completion, visibility on transition, and
never let the temporary `default` login key overwrite character-specific state.
- [ ] Apply global LockUI through the window manager to every window.
- [x] Apply global LockUI through the window manager to every window.
**Acceptance (2026-07-10):** schema-v2 per-character/resolution restore passed a
live Debug restart with every retained window persisted. The gate also caught and
closed hidden-inventory baseline capture (expanded main-pack rows) and chat's
clamped maximize jump (lower edge now remains fixed). Full suite green: 4,545
passed, 5 skipped.
### 2.4 Enforce controller teardown