Use ClassicAPI ticker for abbreviated ToT fallback
This commit is contained in:
@@ -68,8 +68,7 @@ module.enable = function(self)
|
|||||||
if not text or not name then return end
|
if not text or not name then return end
|
||||||
|
|
||||||
-- Avoid forcing a FontString update when the displayed value is already
|
-- Avoid forcing a FontString update when the displayed value is already
|
||||||
-- correct. This matters most for the legacy 250 ms target-of-target
|
-- correct. This matters most for the 250 ms target-of-target fallback.
|
||||||
-- fallback.
|
|
||||||
if not text.GetText or text:GetText() ~= name then
|
if not text.GetText or text:GetText() ~= name then
|
||||||
text:SetText(name)
|
text:SetText(name)
|
||||||
end
|
end
|
||||||
@@ -117,22 +116,30 @@ module.enable = function(self)
|
|||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- ClassicAPI normally provides UNIT_TARGET. Keep a lightweight Vanilla
|
-- Vanilla has no UNIT_TARGET event for target-of-target changes. Prefer the
|
||||||
-- fallback only when that event isn't available instead of running every
|
-- ClassicAPI native ticker so Lua only runs at the required 250 ms cadence,
|
||||||
-- rendered frame like the original module.
|
-- instead of entering a Lua OnUpdate handler every rendered frame. Keep the
|
||||||
|
-- old throttled path only for older environments without C_Timer.NewTicker.
|
||||||
if not hasUnitTarget then
|
if not hasUnitTarget then
|
||||||
local fallback = CreateFrame("Frame")
|
local function UpdateTargetTargetFallback()
|
||||||
fallback.elapsed = 0
|
|
||||||
|
|
||||||
fallback:SetScript("OnUpdate", function()
|
|
||||||
this.elapsed = this.elapsed + (arg1 or 0)
|
|
||||||
if this.elapsed < .25 then return end
|
|
||||||
this.elapsed = 0
|
|
||||||
|
|
||||||
if UnitName("targettarget") then
|
if UnitName("targettarget") then
|
||||||
UpdateTargetTarget()
|
UpdateTargetTarget()
|
||||||
end
|
end
|
||||||
end)
|
end
|
||||||
|
|
||||||
|
if _G.C_Timer and type(_G.C_Timer.NewTicker) == "function" then
|
||||||
|
_G.C_Timer.NewTicker(.25, UpdateTargetTargetFallback)
|
||||||
|
else
|
||||||
|
local fallback = CreateFrame("Frame")
|
||||||
|
fallback.elapsed = 0
|
||||||
|
|
||||||
|
fallback:SetScript("OnUpdate", function()
|
||||||
|
this.elapsed = this.elapsed + (arg1 or 0)
|
||||||
|
if this.elapsed < .25 then return end
|
||||||
|
this.elapsed = 0
|
||||||
|
UpdateTargetTargetFallback()
|
||||||
|
end)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
UpdateTarget()
|
UpdateTarget()
|
||||||
|
|||||||
Reference in New Issue
Block a user