Masque incompatibilities
kstange opened this issue ยท 2 comments
Hi,
I'm the maintainer of Masque Blizzard Bars.
A user reported a compatibility issue with MoveAny. Due to the structure of our two addons, I think my addon is the better place to add compatibility hooks, but I may need some changes from your side so that I can better react to what you're doing.
The compatibility issue is three separate behaviors where the default FloatingBG appears behind the action bars, even though Masque normally replaces or hides it.
The first case happens because my addon loads before yours does (alphabetical order) and it doesn't pick up the FloatingBG textures added to the main action bar because they are added after I skin the buttons. As a workaround, I can force my addon to load later with ## OptionalDeps: MoveAny
in my own TOC files.
Second, if the option "Always Show Action Bars" is toggled, it restores the FloatingBG to ALL of the action bars. I tried to build a workaround for this, but your current method checkd if the option has changed on a looping 0.5 second timer, so I can't actually detect the change and counteract it.
For this problem, I think it would generally be a better implementation if you used the CVAR_UPDATE
event like this:
f = CreateFrame("Frame")
f:RegisterEvent("CVAR_UPDATE")
f:SetScript("OnEvent", EventHandler)
function EventHandler(event, target, value)
if event == "CVAR_UPDATE" then
if target == "alwaysShowActionBars" then
ActionBarUpdate(value)
end
end
end
If you defined the function I labeled ActionBarUpdate()
in my example as a global, I could test for it and hook it with hooksecurefunc()
and call Masque's Group:ReSkin()
on each affected group after it your function runs.
Finally, there's an intermittent issue that I'm not sure of the cause of, where sometimes all of the bars have the FloatingBG visible when the character first logs in. I haven't been able to reproduce it reliably, but a /reload
will typically fix it. This seems like a race condition, but I haven't been able to figure out what code is causing it.
Let me know if you have any thoughts or feedback.
Thanks!