Skip to content

Commit 88a36db

Browse files
committed
Fix: DF Dash taint on secretRect icon borders (defensive + missing buff)
DF_DASH lays its dashes out from the border frame's width/height, but on the 12.1 container icons that rect is SECRET — reading GetWidth() taints and throws (spammed once per frame via the anim driver). The knownWidth/ knownHeight feed already exists for exactly this (AD placed borders use it, which is why the AD frame border was fine); the defensive slot and missing-buff badge just weren't passing it. Feed the configured slot / badge size so the dash math uses it instead of the secret rect. Only DF_DASH reads the frame size; the overlay effects anchor relatively.
1 parent b04ee96 commit 88a36db

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

Features/Auras.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,6 +1061,11 @@ local function styleMissingBadge(h, db, frame, info)
10611061
local spec = DF.Border:BuildSpec(db, "missingBuffIcon", { unit = frame.unit, frame = frame, iconMode = true })
10621062
spec.enabled = showBorder
10631063
spec.size = borderSize
1064+
-- DF_DASH sizes its dash layout from the border's frame width/height; the badge's
1065+
-- rect is SECRET (secretRect on the container button subtree, reading it taints), so
1066+
-- feed the configured badge size for the dash math to use instead.
1067+
spec.knownWidth = db.missingBuffIconSize or MISSING_BADGE_SIZE
1068+
spec.knownHeight = spec.knownWidth
10641069
-- Animate only via the DF-owned (taint-safe) types — the LCG glows SetParent
10651070
-- their pooled frames onto the secretRect badge, which is forbidden on the native
10661071
-- button subtree. Continuous animation is safe now: the shared anim driver hosts on

Frames/AuraContainer.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,10 @@ local function styleButton_regions(slot, config)
460460
local iconMode = borderSpec.iconMode
461461
if iconMode == nil then iconMode = (config.mode ~= "overlay") end
462462
spec = DF.Border:BuildSpec(borderSpec.db, borderSpec.prefix, { unit = config.unit, frame = slot, iconMode = iconMode })
463+
-- DF_DASH lays its dash count out from the frame's width/height, but a
464+
-- row slot's rect is SECRET on 12.1 (reading GetWidth taints). Feed the
465+
-- configured slot size so the dashes size from it, not the secret rect.
466+
if spec then spec.knownWidth, spec.knownHeight = sx, sy end
463467
end
464468
-- ANIMATION FILTER (single chokepoint for BOTH row and overlay).
465469
-- The LCG glows re-SetParent pooled glow frames onto the host, which

0 commit comments

Comments
 (0)