Skip to content

Fix Show Buffs/Show Debuffs toggles not applying live until /reload#165

Open
Krathe82 wants to merge 3 commits into
DanderBot:mainfrom
Krathe82:pr/buff-debuff-toggle-live
Open

Fix Show Buffs/Show Debuffs toggles not applying live until /reload#165
Krathe82 wants to merge 3 commits into
DanderBot:mainfrom
Krathe82:pr/buff-debuff-toggle-live

Conversation

@Krathe82

Copy link
Copy Markdown
Contributor

Summary

Toggling Show Buffs / Show Debuffs in settings didn't take effect on live frames immediately. The value saved correctly, but already-shown auras kept their previous shown/hidden state until a /reload or the unit's next aura event. (Test mode was unaffected — it redraws on the spot, which is why it was easy to miss.)

Root cause

Both checkbox callbacks ran self:RefreshStates() + DF:UpdateAllFrames(). UpdateAllFrames only re-applies frame layout (ApplyFrameLayout) — its own comment notes that unit/aura data updates are left to UNIT_* events. The actual show/hide gate lives in DF:UpdateAuras_Enhanced (buffs/debuffs), which is UNIT_AURA-driven and never invoked by the toggle. So an already-applied aura kept its state until its unit fired the next UNIT_AURA. Buffs looked instant only because they churn constantly; a static debuff lingered until a /reload.

Fix

Switch both callbacks to DF:RefreshAllVisibleFrames(), which re-runs the aura scan per visible frame (RefreshLiveFramesFullFrameRefreshDF:UpdateAuras → the gate). This is the same refresh the adjacent Max Buffs / Max Debuffs sliders already use, so it's an existing, proven path — not a new mechanism. It also handles test mode, making it a strict superset of the prior behaviour.

Scope

  • Options/Options.lua — two callbacks (Show Buffs, Show Debuffs).
  • Changelog.lua — one Bug Fixes entry.

No data/persistence change; purely a live-refresh fix.

The Show Buffs / Show Debuffs checkbox callbacks ran DF:UpdateAllFrames(),
which only re-applies frame layout and leaves aura updates to UNIT_AURA
events. The actual show/hide gate lives in DF:UpdateAuras_Enhanced, so an
already-shown aura kept its state until the unit's next aura event (or a
/reload). Buffs appeared to update instantly only because they churn often;
a static debuff lingered.

Switch both callbacks to DF:RefreshAllVisibleFrames(), which re-runs the
aura scan per visible frame (RefreshLiveFrames -> FullFrameRefresh ->
UpdateAuras) - the same refresh the adjacent Max Buffs/Max Debuffs sliders
already use.
Krathe82 added a commit to Krathe82/DandersFrames that referenced this pull request Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant