local CreateFrame = CreateFrame;
local CTimerAfter = C_Timer.After;
+local guids = addon.FrameGuids;
local updaters = {};
local function showTooltip(frame)
GameTooltip_SetDefaultAnchor(GameTooltip, frame);
f:Hide(); -- hide frame to have an initial frame:OnShow call
f:SetWidth(width);
f:SetHeight(height);
+ f.barwidth = width - 2; -- 1px padding on both sides
f:SetAttribute("unit", unit);
f.unit = unit;
f.displayed = unit;
f.vehicle = unit == "player" and "vehicle" or format("%spet", unit);
f.prev = {} -- values stored from previous update
+ f.alert = {}; -- alerting auras
-- set up periodic updates
updaters[f] = function()
if f.updating then
- CTimerAfter(0.25, updaters[f]);
+ CTimerAfter(0.1, updaters[f]);
return update(f)
end
end
f:SetScript("OnHide", function()
f:UnregisterAllEvents();
f.updating = false;
+ if f.guid then
+ guids[f.guid] = nil;
+ f.guid = nil;
+ end
end);
f:SetScript("OnEvent", event);
f:SetScript("OnEnter", showTooltip);