feat(ui): centralize retained window lifecycle
This commit is contained in:
parent
4bb37e302e
commit
6e9e10367f
12 changed files with 778 additions and 57 deletions
|
|
@ -225,17 +225,17 @@ text; full suite green; user visual gate.
|
|||
|
||||
### 2.1 Introduce `RetailWindowManager` and typed handles
|
||||
|
||||
- [ ] Add `RetailWindowHandle` and lifecycle events: `Shown`, `Hidden`, `Moved`,
|
||||
- [x] Add `RetailWindowHandle` and lifecycle events: `Shown`, `Hidden`, `Moved`,
|
||||
`Resized`, `Closed`, `LockChanged`.
|
||||
- [ ] Move named-window registry/raise policy behind `RetailWindowManager`; retain
|
||||
- [x] Move named-window registry/raise policy behind `RetailWindowManager`; retain
|
||||
thin `UiHost` forwarding APIs for callers.
|
||||
- [ ] Define `IRetainedPanelController : IDisposable` with idempotent `OnShown`,
|
||||
- [x] Define `IRetainedPanelController : IDisposable` with idempotent `OnShown`,
|
||||
`OnHidden`, and optional descendant-focus notification, without coupling `UiRoot`
|
||||
to game/network semantics.
|
||||
- [ ] Make `UiRoot` emit visibility, descendant-focus, and pointer-capture changes;
|
||||
- [x] Make `UiRoot` emit visibility, descendant-focus, and pointer-capture changes;
|
||||
the handle owns outer-frame geometry/opacity and the controller owns panel-specific
|
||||
reactions.
|
||||
- [ ] On hide/unregister, clear descendant focus, capture, modal ownership, drag
|
||||
- [x] On hide/unregister, clear descendant focus, capture, modal ownership, drag
|
||||
state, and default text input. Remove the max/min button from any shared close-id
|
||||
convention; each controller binds close and maximize explicitly.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue