This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
Client: World of Warcraft Classic — Mists of Pandaria (5.5.x) Class affected: Warlock (Demonology, Metamorphosis toggle), but likely any class with temp shapeshift bar swaps Bartender4 version: current MoP Classic release
Toggling Metamorphosis (entering or leaving the form) causes a single-frame stall of roughly 300–400 ms. The stall is fully reproducible with all Bartender4 bars disabled and even with an empty/default profile, as long as Bartender4 itself is loaded. After bisecting HideBlizzard(), the freeze comes down to a single line in hideActionButton():
HideBlizzard()
hideActionButton()
local function hideActionButton(button) if not button then return end button:Hide() button:UnregisterAllEvents() button:SetAttribute("statehidden", true) button.bar = nil -- <-- this line end
Commenting out button.bar = nil (and only that line — Hide/UnregisterAllEvents/SetAttribute all restored) completely removes the freeze. Restoring the line brings the freeze back.
button.bar = nil
/etrace
UPDATE_SHAPESHIFT_FORM
ACTIONBAR_SLOT_CHANGED
SPELL_UPDATE_ICON
SPELLS_CHANGED
ActionButton.OnActionChanged
scriptProfile 1
bar
taintLog
0
Remove (or make conditional for Classic clients) the button.bar = nil line in hideActionButton() in HideBlizzard.lua. As far as I can tell, bar on the Blizzard action buttons is only read by Blizzard's own code; Bartender4 never reads it, so clearing it only serves to sever the button→bar link — and on this client that severed link makes every shapeshift-triggered touch of the hidden buttons pathologically expensive. With the line removed, the hidden buttons behave normally (still hidden, still event-free, still statehidden), and form changes are smooth.
HideBlizzard.lua
statehidden
/reload
To post a comment, please login or register a new account.