fix #379: chat opacity fade was scoped to every window, not just chat
Root cause: RetailWindowOpacityController applied the Default/Active opacity fade to EVERY registered UiRoot window (vitals, toolbar, inventory, spellbook, radar, even the Options panel itself), but retail's ChatInterface::SetDefaultOpacity/SetActiveOpacity are only ever called by gmMainChatUI/gmFloatyChatUI — the mechanism is chat-only in retail, not a global window-opacity feature. Fix: scope the controller's catch-up loop, OnWindowRegistered, ReapplyAll, and Dispose to WindowNames.Chat/ChatWindow1-4 only; every other registered window now stays fully opaque regardless of slider position, matching retail's own scope. Regressed by RetailWindowOpacityControllerTests. OpacityFade_AppliesOnlyToChatWindows_NeverOtherPanels (registers vitals/toolbar/chat/a floating chat window and asserts the non-chat windows never move off 1.0 while chat windows still track Default/ Active correctly). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
c121842664
commit
c0b3d8f233
4 changed files with 177 additions and 56 deletions
|
|
@ -427,10 +427,24 @@ chat windows already read when deciding which lines to show.
|
|||
|
||||
### Opacity sliders — live drag, linked, never clamping
|
||||
|
||||
|
||||
**Gate-4 re-test note (#379) — step 4 below is REWRITTEN:** the sliders
|
||||
previously faded EVERY registered window (vitals, toolbar, inventory,
|
||||
spellbook, radar, the Options panel itself, ...), not just chat windows —
|
||||
matching retail's own bug-for-bug scope. They now affect ONLY the main
|
||||
chat window and the four floating chat windows, exactly like retail's
|
||||
`ChatInterface::SetDefaultOpacity`/`SetActiveOpacity` (which only
|
||||
`gmMainChatUI`/`gmFloatyChatUI` ever call). **Use a chat window (main or
|
||||
floating), not the toolbar/vitals/another panel, as your "other window" in
|
||||
step 4** — a non-chat window's opacity should now stay FIXED (opaque)
|
||||
regardless of the slider position.
|
||||
|
||||
4. **Drag the FIRST slider (Default Opacity) most of the way to the right**
|
||||
while the Options panel itself is NOT focused/hovered by your mouse (so
|
||||
you can see another registered window, e.g. the toolbar or a floating
|
||||
chat window, at its UNFOCUSED opacity). Watch that OTHER window's
|
||||
you can see another CHAT window — the main chat window or a floating
|
||||
chat window 1-4 — at its UNFOCUSED opacity; a NON-chat window like the
|
||||
toolbar or vitals bar must stay fully opaque throughout this whole
|
||||
section, per the #379 note above). Watch that other CHAT window's
|
||||
transparency change LIVE, continuously, as you drag — not just on
|
||||
release. This is retail's `SetCurrentValue -> Apply(1)` immediate-apply
|
||||
semantic.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue