Skip to content

fix(raid frames): let an aura show duration text with no cooldown swipe - #1373

Closed
dfrisone wants to merge 5 commits into
EllesmereGaming:mainfrom
dfrisone:rf-party-duration-swipe
Closed

fix(raid frames): let an aura show duration text with no cooldown swipe#1373
dfrisone wants to merge 5 commits into
EllesmereGaming:mainfrom
dfrisone:rf-party-duration-swipe

Conversation

@dfrisone

@dfrisone dfrisone commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Cause

Two things blocked the text-only aura setup on Party/Raid frames.

Cooldown:SetShown(false) does not stick on an aura button: the engine calls SetCooldown on that frame whenever the slot's data refreshes, and the native call implicitly re-Shows it. So hideSwipe was written and then overruled, from both Hide Icons and Duration Swipe.

On top of that, Duration Swipe was greyed out whenever Hide Icons was on, so the one control that could have helped was unreachable in exactly the configuration that needed it.

Fix

Use SetDrawSwipe, a CooldownStyle aspect the engine has no reason to clear on refresh (and AllowedWhenTainted, so the call is legal in restricted content). The cooldown stays registered via SetDurationCooldown because that registration is the button's duration SOURCE -- withholding it removes the duration text along with the swipe. Ungate the toggle; Opacity and Border keep their gating, since those describe icon art.

Test

Verified in game on party frames: hidden icon with duration text, stacks and no swipe, and the swipe returns when re-enabled.

Greatest Of All Time Goat GIF by Nutrena Feed

…s on

Opacity and Border describe the icon art and are rightly greyed out when the
icon is hidden. The swipe is a separate layer that keeps drawing over a hidden
icon, so it was greyed out in exactly the situation where a user needs it: the
text-only setup (hidden icon, duration text, no swipe) had no way to turn the
swipe off at all. Two reporters hit the same wall.
…hidden

SetDurationCooldown transfers ownership of the widget to the engine, which then
draws and re-shows the swipe on its own schedule. ApplyStyleToRegions hides it
with SetShown a few lines earlier, and that does not survive the handover, so
Hide Icons and Duration Swipe off both left the swipe drawing with no way to
stop it. Gate the registration instead, inside the creation window, since
touching an engine-owned region afterwards is forbidden-object access.

Duration text is unaffected: it comes from SetDurationTextSafe, not the swipe,
which is what makes a text-only aura display possible.
…source

Withholding the frame from SetDurationCooldown removed the duration TEXT along
with the swipe: that registration is the button's duration source, not just a
place to draw. Register it as before and turn the drawing off instead.
SetDrawSwipe is a CooldownStyle aspect rather than visibility, so an aura
refresh has no reason to clear it, and it is AllowedWhenTainted so the call is
legal where this matters.
@EllesmereGaming

Copy link
Copy Markdown
Owner

merging this manually as i was doing similar work in that area

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.

2 participants