Well...you can make inline frame dragable aswell. You listen to DragStop.
Once that fires you calculate the point diffenrence of the parent element to your current frame.
I used this function somewhere. I can be changed to deliver the offset you need for your stuff. But actually I do resize/reloading. You only need a couple of tries to get stuff right and don't need to do it again.
Lua Code:
local calcPoint = function(s)
if s:GetParent():GetName() ~= "UIParent" then
local Hx, Hy = s:GetParent():GetCenter()
local W, H = s:GetParent():GetSize()
local Ox, Oy = s:GetCenter()
if(not Ox) then return end
local scale = s:GetScale()
Hx, Hy = floor(Hx), floor(Hy)
Ox, Oy = floor(Ox*scale), floor(Oy*scale)
local Tx, Ty = (Hx-Ox)*(-1), (Hy-Oy)*(-1)
s:ClearAllPoints()
s:SetPoint("CENTER",s:GetParent(),Tx/scale,Ty/scale)
end
end