I also have been playing this recently:
Lua Code:
hooksecurefunc("CompactRaidFrameManager_Expand", function(self)
if MovAny:IsModified(self) then
MovAny:UnlockPoint(self)
local point, relativeTo, relativePoint, xOfs, yOfs = self:GetPoint(1)
self:ClearAllPoints()
self:SetPoint("TOPLEFT", UIParent, "TOPLEFT", xOfs + 175, yOfs)
MovAny:LockPoint(self)
end
end)
hooksecurefunc("CompactRaidFrameManager_Collapse", function(self)
if MovAny:IsModified(self) then
MovAny:UnlockPoint(self)
local point, relativeTo, relativePoint, xOfs, yOfs = self:GetPoint(1)
self:ClearAllPoints()
self:SetPoint("TOPLEFT", UIParent, "TOPLEFT", xOfs - 175, yOfs)
MovAny:LockPoint(self)
end
end)
-- Before you hide it to keep the raidframes:
if fn == "CompactRaidFrameManager" then
if InCombatLockdown() or UnitAffectingCombat("player") then
return
end
f:UnregisterAllEvents()
CompactRaidFrameContainer:SetParent(UIParent)
end
-- Before you reshow it, reparent and repoint raidframe to it:
if fn == "CompactRaidFrameManager" then
if InCombatLockdown() or UnitAffectingCombat("player") then
return
end
f:RegisterEvent("DISPLAY_SIZE_CHANGED")
f:RegisterEvent("UI_SCALE_CHANGED")
f:RegisterEvent("GROUP_ROSTER_UPDATE")
f:RegisterEvent("UNIT_FLAGS")
f:RegisterEvent("PLAYER_FLAGS_CHANGED")
f:RegisterEvent("PLAYER_ENTERING_WORLD")
f:RegisterEvent("PARTY_LEADER_CHANGED")
f:RegisterEvent("RAID_TARGET_UPDATE")
f:RegisterEvent("PLAYER_TARGET_CHANGED")
CompactRaidFrameContainer:ClearAllPoints()
CompactRaidFrameContainer:SetParent(f)
MovAny:UnlockPoint(CompactRaidFrameContainer)
CompactRaidFrameContainer:SetPoint("TOPLEFT", CompactRaidFrameManagerContainerResizeFrame, "TOPLEFT", 4, - 7)
end
function MovAny:UnlockPoint(f)
f.MAPoint = nil
end
function MovAny:LockPoint(f, opt)
if not f.MAPoint then
if f:GetName() and (MovAny.lForcedLock[f:GetName()] or (opt and opt.forcedLock)) then
if not f.MASetPoint then
f.MASetPoint = f.SetPoint
f.SetPoint = MovAny.fVoid
end
else
if not f.MALockPointHook then
hooksecurefunc(f, "SetPoint", MovAny.hSetPoint)
f.MALockPointHook = true
end
f.MAPoint = {f:GetPoint(1)}
end
end
end
fVoid = function() end
"MovAny:IsModified(self)" determines if the frame's position is modified or it's in the default position.
The moving functions should not be a problem, just don't let it move it in combat.
The advantage of this, when you move the Manager to another position the toggle panel button will work perfectly on that spot too.