diff --git a/modules/actionbar.lua b/modules/actionbar.lua index 9edd0469..ab84ce70 100644 --- a/modules/actionbar.lua +++ b/modules/actionbar.lua @@ -755,9 +755,14 @@ pfUI:RegisterModule("actionbar", "vanilla", function () end local self, button, unlock + -- Main update loop with throttle for performance optimization local function BarsUpdate(self) self = self or this + -- Throttle for performance + if (this.tick_main or 0) > GetTime() then return end + this.tick_main = GetTime() + 0.025 + -- update buttons whenever a button drag is assumed AssumeButtonDrag() @@ -1695,9 +1700,13 @@ pfUI:RegisterModule("actionbar", "vanilla", function () end end) - -- limit events to one per second and smoothen action scanning + -- Reagent counter update with throttle for performance optimization reagentcounter:SetScript("OnUpdate", function() - -- scan one action slot per frame + -- Throttle entire function to 10 FPS for smooth scanning + if (this.tick_update or 0) > GetTime() then return end + this.tick_update = GetTime() + 0.1 + + -- scan one action slot per update if this.scan and this.scan <= 120 then UpdateSlot(this.scan) this.scan = this.scan + 1 diff --git a/modules/minimap.lua b/modules/minimap.lua index 53bc3374..215f3323 100644 --- a/modules/minimap.lua +++ b/modules/minimap.lua @@ -134,8 +134,11 @@ pfUI:RegisterModule("minimap", "vanilla:tbc", function () -- Create coordinates text frame with location configurable pfUI.minimapCoordinates = CreateFrame("Frame", "pfMinimapCoord", pfUI.minimap) pfUI.minimapCoordinates:SetScript("OnUpdate", function() - -- update coords every 0.1 seconds - if C.appearance.minimap.coordstext ~= "off" and ( this.tick or .1) > GetTime() then return else this.tick = GetTime() + .1 end + -- Throttle to update coords every 0.1 seconds + if ( this.tick or 0) > GetTime() then return end + this.tick = GetTime() + .1 + + if C.appearance.minimap.coordstext == "off" then return end this.posX, this.posY = GetPlayerMapPosition("player") if this.posX ~= 0 and this.posY ~= 0 then