Turned out i'm blind and forgot to remove layers from parent button:
Lua Code:
function TDButton_DestroyAllOverlays()
local frame;
for key, frame in pairs(TDButton_Frames) do
frame:GetParent().tdOverlays = nil;
frame:ClearAllPoints();
frame:Hide();
frame:SetParent(UIParent);
frame.width = nil;
frame.height = nil;
end
for key, frame in pairs(TDButton_Frames) do
tinsert(TDButton_FramePool, frame);
TDButton_Frames[key] = nil;
end
end
that line did the job: frame:GetParent().tdOverlays = nil;
Because at the begining of the showing overlay i had:
Lua Code:
if button.tdOverlays and button.tdOverlays[id] then
button.tdOverlays[id]:Show();
else