X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/2d236ece61c4b9b9e4e56b90576ece5b86a88879..ef91c2584d4ee38c18d9da4ec909f237591e6482:/OmaAB/ActionBars.lua diff --git a/OmaAB/ActionBars.lua b/OmaAB/ActionBars.lua index 610dcf3..012c5f9 100644 --- a/OmaAB/ActionBars.lua +++ b/OmaAB/ActionBars.lua @@ -121,6 +121,7 @@ local chars = { ["Stormreaver"] = { ["Vildan"] = {1, 2, 3, 4,}, ["Gedren"] = {1, 2, 3, 4,}, + ["Gazden"] = {1, 2, 3, 4,}, }, }; @@ -549,23 +550,33 @@ local function setupBindings() end local mounted = false; -local throttleCD = false; +-- throttleCD 3-state, nil -> false -> true -> nil +-- this way there's not double update each time the first +-- update event comes, instead the extra throttled update comes +-- if there are >2 ACTIONBAR_UPDATE_COOLDOWN events in one frame +local throttleCD = nil; local function throttleCDDone() - throttleCD = false -- update CD once more to confirm newest CD change is taken in even with some throttling for _, button in pairs(activeButtons) do updateCooldown(button, button.slot); end end +local function throttleCDReset() + throttleCD = nil; +end local events = { ["ACTIONBAR_UPDATE_COOLDOWN"] = function() if not throttleCD then -- only update at most once/frame - throttleCD = true; - for _, button in pairs(activeButtons) do - updateCooldown(button, button.slot); + throttleCD = throttleCD == false and true or false; + if throttleCD then + CTimerAfter(0.01, throttleCDDone); -- wait one frame + else + for _, button in pairs(activeButtons) do + updateCooldown(button, button.slot); + end + CTimerAfter(0.01, throttleCDReset); -- wait one frame end - CTimerAfter(0.01, throttleCDDone); -- wait one frame end end, ["SPELL_UPDATE_CHARGES"] = function()