From 407c4b15e29d5ba20c8c95e763c7cf2eeedb3afa Mon Sep 17 00:00:00 2001 From: "vjekoslav.krenek@gmail.com" <313787825+svart2521@users.noreply.github.com> Date: Sun, 13 Sep 2026 23:26:21 +0200 Subject: [PATCH] Fix: Re-strip events from disposed Blizzard action buttons on re-Show Bug: Issue: Blizzard's periodic re-init of a disposed MultiBarBottomLeft button (hidden via QuietlyHideBlizzButton) re-registers its default events onto an already-tainted button, so the next native cooldown update rejects secret start/duration values with "bad argument #1 to SetCooldown". Fix: Mirrored the existing bar-level OnShow re-hide hook onto QuietlyHideBlizzButton itself, so a button's own re-init gets silently re-stripped of events too. --- EllesmereUIActionBars/EllesmereUIActionBars.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/EllesmereUIActionBars/EllesmereUIActionBars.lua b/EllesmereUIActionBars/EllesmereUIActionBars.lua index 5a05634ba..fbf8b4625 100644 --- a/EllesmereUIActionBars/EllesmereUIActionBars.lua +++ b/EllesmereUIActionBars/EllesmereUIActionBars.lua @@ -940,6 +940,12 @@ hiddenParent:Hide() function ns.QuietlyHideBlizzButton(btn) btn:UnregisterAllEvents() btn:SetAttributeNoHandler("statehidden", true) + -- Blizzard's own re-init re-registers events (incl. cooldown) on this + -- already-tainted button; re-strip them on its next OnShow. + if not btn._eabReassertHide then + btn._eabReassertHide = true + btn:HookScript("OnShow", function(self) self:UnregisterAllEvents() end) + end end -- Re-hide a stock bar Blizzard just re-Show()'d, without calling Hide() or