fix totem bar dismissal (#18)

* fix totem bar dismissal

* limit insecure DestroyTotem fix to Classic/TBC

* fix fussy commit

Co-authored-by: Wiktor Ozimek <wiktor.ozimek@gmail.com>
This commit is contained in:
Fktor
2021-11-24 20:25:10 +01:00
committed by GitHub
parent e4919fb1fe
commit 9e77fa6831
2 changed files with 7 additions and 7 deletions

View File

@ -35,6 +35,7 @@ IceHUD.PerTargetComboPoints = IceHUD.WowVer < 60000
IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic IceHUD.CanTrackOtherUnitBuffs = not IceHUD.WowClassic
IceHUD.CanTrackGCD = not IceHUD.WowClassic IceHUD.CanTrackGCD = not IceHUD.WowClassic
IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000 IceHUD.GetSpellInfoReturnsFunnel = IceHUD.WowMain and IceHUD.WowVer < 60000
IceHUD.CanHookDestroyTotem = IceHUD.WowClassic or IceHUD.WowClassicBC
IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE" IceHUD.UnitPowerEvent = "UNIT_POWER_UPDATE"

View File

@ -339,7 +339,6 @@ function Totems.prototype:CreateTotem(i, name)
return return
end end
local haveTotem, name, startTime, duration, icon = GetTotemInfo(i) local haveTotem, name, startTime, duration, icon = GetTotemInfo(i)
local bWasNewFrame = false
if (not self.frame.graphical[i]) then if (not self.frame.graphical[i]) then
self.frame.graphical[i] = CreateFrame("Frame", nil, self.frame) self.frame.graphical[i] = CreateFrame("Frame", nil, self.frame)
self.frame.graphical[i].totem = self.frame.graphical[i]:CreateTexture(nil, "LOW") self.frame.graphical[i].totem = self.frame.graphical[i]:CreateTexture(nil, "LOW")
@ -348,7 +347,6 @@ function Totems.prototype:CreateTotem(i, name)
self.frame.graphical[i].totem:SetTexture(icon) self.frame.graphical[i].totem:SetTexture(icon)
self.frame.graphical[i].totem:SetAllPoints(self.frame.graphical[i]) self.frame.graphical[i].totem:SetAllPoints(self.frame.graphical[i])
bWasNewFrame = true
end end
self.frame.graphical[i]:SetFrameStrata("BACKGROUND") self.frame.graphical[i]:SetFrameStrata("BACKGROUND")
@ -405,18 +403,19 @@ function Totems.prototype:CreateTotem(i, name)
self.frame.graphical[i]:EnableMouse(true) self.frame.graphical[i]:EnableMouse(true)
self.frame.graphical[i]:SetScript("OnEnter", self.graphicalOnEnter) self.frame.graphical[i]:SetScript("OnEnter", self.graphicalOnEnter)
self.frame.graphical[i]:SetScript("OnLeave", self.graphicalOnLeave) self.frame.graphical[i]:SetScript("OnLeave", self.graphicalOnLeave)
if IceHUD.CanHookDestroyTotem then
self.frame.graphical[i]:SetScript("OnMouseUp", self.graphicalOnMouseUp)
end
else else
self.frame.graphical[i]:EnableMouse(false) self.frame.graphical[i]:EnableMouse(false)
self.frame.graphical[i]:SetScript("OnEnter", nil) self.frame.graphical[i]:SetScript("OnEnter", nil)
self.frame.graphical[i]:SetScript("OnLeave", nil) self.frame.graphical[i]:SetScript("OnLeave", nil)
if IceHUD.CanHookDestroyTotem then
self.frame.graphical[i]:SetScript("OnMouseUp", nil)
end
end end
self.frame.graphical[i].slot = i self.frame.graphical[i].slot = i
self.frame.graphical[i].name = name self.frame.graphical[i].name = name
-- it looks like HookScript will continue to add handlers every time instead of replacing them like SetScript
if (bWasNewFrame) then
--self.frame.graphical[i]:HookScript("OnMouseUp", self.graphicalOnMouseUp)
end
end end
-- Load us up -- Load us up