Fix Aura Designer settings not applying to live frames without /reload#45
Closed
Krathe82 wants to merge 1 commit into
Closed
Fix Aura Designer settings not applying to live frames without /reload#45Krathe82 wants to merge 1 commit into
Krathe82 wants to merge 1 commit into
Conversation
Every setting change in the Aura Designer UI writes to the saved DB via a proxy __newindex, then calls RefreshPreviewLightweight() — which only updates the mock preview frame. Live party/raid frames were never notified, so changes to fill color, border, expiring, duration text, and related settings had no effect until the UI was reloaded. Add RefreshLiveFramesThrottled() — a 100ms debounced wrapper around ForceRefreshAllFrames() — and call it from all three proxy __newindex handlers (CreateInstanceProxy, CreateProxy, CreateAuraProxy). The debounce prevents slider drag ticks from spamming ForceRefreshAllFrames on every tick while still applying the final value promptly. Fixes: fill color, border on/off/thickness/color, Color Bar by Duration, Show Duration Text, Hide Duration Above Threshold, Color Duration by Time.
DanderBot
pushed a commit
that referenced
this pull request
May 7, 2026
Owner
|
Thanks for the PR! Squashed and merged into main as 4bbcd5f — shipping in v4.3.7-alpha.5. |
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.
Problem
Multiple Aura Designer settings work correctly in the preview window but have no effect on live party/raid frames until the UI is reloaded:
Root Cause
Every Aura Designer setting is written via a proxy table. All three proxy __newindex\ handlers (CreateInstanceProxy, CreateProxy, CreateAuraProxy) save the value to the DB and call \RefreshPreviewLightweight()\ — which only updates the mock preview frame. Live unit frames were never notified of the change, so they kept running with stale config until the next /reload.
The various explicit \Engine:ForceRefreshAllFrames()\ calls scattered through Options.lua only cover a handful of specific controls (e.g. toggling AD on/off, changing aura source). All the per-indicator settings go through the proxy path and were missing the live-frame refresh entirely.
Fix
Add \RefreshLiveFramesThrottled()\ — a 100ms debounced wrapper around \Engine:ForceRefreshAllFrames()\ — and call it from all three proxy __newindex\ handlers alongside the existing \RefreshPreviewLightweight()\ call.
The 100ms debounce prevents slider drag ticks from spamming \ForceRefreshAllFrames()\ on every pixel of movement, while still applying the final value promptly when the user stops dragging.