Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 25 additions & 2 deletions EllesmereUIActionBars/EUI_ActionBars_Options.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5425,6 +5425,16 @@ initFrame:SetScript("OnEvent", function(self)
if loopIdx < 1 or loopIdx > #LOOP then loopIdx = 1 end
local loopEntry = LOOP[loopIdx]

-- "Hide": show the icon dimmed with no glow, matching how "None" reads,
-- since the point of the option is that nothing is drawn. Without this
-- the dispatch below would fall through to the FlipBook arm with an
-- entry that has no atlas or texture.
if loopEntry and loopEntry.hide then
f:Show()
f:SetAlpha(0.15)
return
end

local iconSize = PREVIEW_ICON_SIZE
local cr, cg, cb
if p.procGlowUseClassColor then
Expand Down Expand Up @@ -5736,7 +5746,16 @@ initFrame:SetScript("OnEvent", function(self)
-------------------------------------------------------------------
_, h = W:SectionHeader(parent, SECTION_PROC_GLOW, y); y = y - h

local function procGlowOff() return (p.procGlowType == 0) or (p.procGlowEnabled == false) end
-- "Hide" counts as off for the dependent controls: there is no glow to
-- colour, so the colour swatch and Use Class Color grey out just as
-- they do for "None".
local function procGlowIsHide()
local e = ns.LOOP_GLOW_TYPES and ns.LOOP_GLOW_TYPES[p.procGlowType or 0]
return (e and e.hide) and true or false
end
local function procGlowOff()
return (p.procGlowType == 0) or (p.procGlowEnabled == false) or procGlowIsHide()
end

-- Check if any bar uses a custom shape (not "none")
local function AnyBarHasCustomShape()
Expand All @@ -5763,7 +5782,11 @@ initFrame:SetScript("OnEvent", function(self)
getValue=function() if p.procGlowEnabled == false then return 0 end; return p.procGlowType or 1 end,
setValue=function(v)
local wasOff = (p.procGlowType == 0) or (p.procGlowEnabled == false)
local turningOn = wasOff and v ~= 0
-- "Hide" does strictly LESS work than Blizzard's own glow, so
-- it must not trigger the custom-glow performance warning.
local vEntry = ns.LOOP_GLOW_TYPES and ns.LOOP_GLOW_TYPES[v]
local vIsHide = (vEntry and vEntry.hide) and true or false
local turningOn = wasOff and v ~= 0 and not vIsHide
if turningOn then
EllesmereUI:ShowConfirmPopup({
title = "Custom Proc Glow Settings",
Expand Down
24 changes: 24 additions & 0 deletions EllesmereUIActionBars/EllesmereUIActionBars.lua
Original file line number Diff line number Diff line change
Expand Up @@ -8064,6 +8064,12 @@ local LOOP_GLOW_TYPES = {
{ name = "Modern WoW Glow", atlas = "UI-HUD-ActionBar-Proc-Loop-Flipbook", texPadding = 1.4 },
{ name = "Classic WoW Glow", texture = "Interface\\SpellActivationOverlay\\IconAlertAnts",
rows = 5, columns = 5, frames = 25, duration = 0.3, frameW = 48, frameH = 48, texPadding = 1.25 },
-- Suppress the glow entirely. Note this is NOT the same as the dropdown's
-- "None" (procGlowType 0), which means "do not customise" and therefore
-- leaves Blizzard's own gold glow in place. Appended last on purpose:
-- procGlowType is stored by INDEX, so inserting anywhere else would
-- silently reassign every existing player's chosen style.
{ name = "Hide", hide = true },
}
ns.LOOP_GLOW_TYPES = LOOP_GLOW_TYPES

Expand Down Expand Up @@ -8181,6 +8187,24 @@ local function UpdateFlipbook(btn)

local loopIdx = p.procGlowType or 1
if loopIdx < 1 or loopIdx > #LOOP_GLOW_TYPES then loopIdx = 1 end
-- "Hide": suppress BOTH surfaces and stop. Checked before the custom-shape
-- force below, because that force decides HOW a glow is drawn and must not
-- resurrect one the player asked not to see.
-- Only the visual is suppressed: _procState.active still tracks the button,
-- so the assisted-highlight and glow-rescan paths that read proc state stay
-- correct. Alpha 0 as well as Hide(), because Blizzard re-Shows its own
-- region on the next proc and alpha survives that.
if LOOP_GLOW_TYPES[loopIdx] and LOOP_GLOW_TYPES[loopIdx].hide then
local gw = fd.glowWrapper
if gw then
_G_Glows.StopAllGlows(gw)
gw:SetAlpha(0)
gw:Hide()
end
if region then region:SetAlpha(0); region:Hide() end
fd.customizedFlipbook = true
return
end
-- Force Shape Glow for custom shapes regardless of user selection
if fd.shapeMask and fd.shapeApplied then
for si, entry in ipairs(LOOP_GLOW_TYPES) do
Expand Down
Loading