Add opt-in chat embedding for damage and healing meters - #2090
Draft
NYTEMODEONLY wants to merge 1 commit into
Draft
NYTEMODEONLY wants to merge 1 commit into
NYTEMODEONLY wants to merge 1 commit into
Conversation
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Adds an opt-in Meters view inside the chat content area. Two existing Damage Done
and Healing Done windows sit side by side, freeing the screen space used by their
standalone frames. A three-bar icon above Settings switches between chat and meters;
right-click opens Damage Meters settings. Native header buttons, timers, scrolling,
breakdowns and the chat background opacity are preserved.
The four options live directly in Damage Meters > Chat Meters and default off:
embedding, auto-show on dungeon entry, auto-show on raid entry, and return to chat on
exit. They use the normal damage-meter profile. Manual chat selection lasts until
another instance transition; extra meter windows remain independent.
The implementation gives chat explicit ownership of adopted meter windows.
Settings previews, chat resizing, Blizzard Edit Mode and Ellesmere unlock mode
cannot restore standalone placement. Partial rebuilds keep surviving meters embedded;
disabling embedding restores the original standalone frames and controls. Existing
unlock registrations are retained so temporary embedding does not delete saved links.
This is the native integration of a working companion, with the companion's polling,
geometry hooks and runtime settings-page replacement removed. The host is built
lazily; lifecycle notifications and owned-frame size changes drive updates. There is
no new polling loop, timer gate, secure-tab override or addon-registration whitelist change.
How was it tested?
python .tools/chat-meters-tests/run.pywith Python 3 andlupa==2.8: passes.The harness executes the actual host and production placement, unlock, visibility,
sidebar and Combat Log closures, including all 32 combinations of edit/unlock/
settings/resize flags and selected view. It also checks lazy opt-in, untouched
standalone geometry, full headers, resize without data fetches, tab/zone switching,
missing hosts, partial/empty rebuilds, profile opt-out and disable/re-enable cleanup.
git diff --checkpasses.The companion was used in game on EllesmereUI 9.1.8 / Retail Midnight 12.1. The
native refactor in this PR has not yet been tested in the live client, so this
is a draft pending that pass. The mocks cannot certify combat taint, actual frame
anchoring, rendering or raid performance.
For an in-game review: disable the separate
EllesmereUIChatMeterscompanion first,enable the new setting, and exercise chat/Combat Log/whispers during combat, resizing,
both edit modes, settings previews, profile swaps and every header action. Confirm
that switching the feature off restores the prior standalone layout.
Screenshots
Before: chat and the two meters occupy separate screen areas. A matched before
capture is not available.
After: contributor-supplied screenshot of the working companion. The proposed native
page uses Chat Meters without the companion's (Custom) suffix and defaults off.
Checklist