# HG changeset patch # User Flick # Date 1236384663 0 # Node ID 16048f516f5ed6eabf99e96e26a308dc7dc7da11 # Parent e39d80bb0b7ac4312182e1c3b1b6f574994f7c21 More Button refactoring diff -r e39d80bb0b7a -r 16048f516f5e classes/ActionButton.lua --- a/classes/ActionButton.lua Fri Mar 06 23:58:02 2009 +0000 +++ b/classes/ActionButton.lua Sat Mar 07 00:11:03 2009 +0000 @@ -229,13 +229,12 @@ local f = self:GetFrame() local c = self:GetConfig() - f:UnregisterAllEvents() + f:SetAttribute("_childupdate-vehicle",nil) + f:SetAttribute("action",c.actionID) -- so that Destroy releases the right one - f:SetAttribute("_childupdate-vehicle",nil) - - self:ReleaseActionID(c.actionID) - if c.pageactions then - for _, id in ipairs(c.pageactions) do + if c.pageactions and #c.pageActions > 1 then + for i = 2, #c.pageActions do + self:ReleaseActionID(c.pageactions[i]) self:ReleaseActionID(id) end end diff -r e39d80bb0b7a -r 16048f516f5e classes/Button.lua --- a/classes/Button.lua Fri Mar 06 23:58:02 2009 +0000 +++ b/classes/Button.lua Sat Mar 07 00:11:03 2009 +0000 @@ -88,6 +88,8 @@ function Button:Destroy() local f = self:GetFrame() + f:UnregisterAllEvents() + self:ReleaseActionID(self:GetActionID()) if f then f:Hide() f:SetParent(trash) diff -r e39d80bb0b7a -r 16048f516f5e classes/PetActionButton.lua --- a/classes/PetActionButton.lua Fri Mar 06 23:58:02 2009 +0000 +++ b/classes/PetActionButton.lua Sat Mar 07 00:11:03 2009 +0000 @@ -139,12 +139,6 @@ return self end -function Pet:Destroy() - self:GetFrame():UnregisterAllEvents() - self:ReleaseActionID(self:GetConfig().actionID) - Super.Destroy(self) -end - function Pet:Refresh() Super.Refresh(self) self:Update()