From b457d056bb92c337b07b1f6680271267e57542a0 Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Fri, 5 Sep 2008 11:10:17 +0200 Subject: [PATCH] Add WorldFrame and UIParent to the list of frames to snap to and tweak sticky code --- Bar.lua | 16 +++++++++------- libs/SimpleSticky.lua | 3 ++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Bar.lua b/Bar.lua index 5a6d477..e02e44a 100644 --- a/Bar.lua +++ b/Bar.lua @@ -25,12 +25,7 @@ local defaults = { } local Sticky = LibStub("LibSimpleSticky-1.0") - -local barregistry = {} -Bartender4.Bar = {} -Bartender4.Bar.defaults = defaults -Bartender4.Bar.prototype = Bar -Bartender4.Bar.barregistry = barregistry +local snapBars = { WorldFrame, UIParent } local barOnEnter, barOnLeave, barOnDragStart, barOnDragStop, barOnClick, barOnUpdateFunc do @@ -45,7 +40,7 @@ do function barOnDragStart(self) local parent = self:GetParent() local offset = 8 - (parent.config.padding or 0) - Sticky:StartMoving(parent, barregistry, offset, offset, offset, offset) + Sticky:StartMoving(parent, snapBars, offset, offset, offset, offset) self:SetBackdropBorderColor(0, 0, 0, 0) parent.isMoving = true end @@ -73,12 +68,19 @@ do end end +local barregistry = {} +Bartender4.Bar = {} +Bartender4.Bar.defaults = defaults +Bartender4.Bar.prototype = Bar +Bartender4.Bar.barregistry = barregistry function Bartender4.Bar:Create(id, config, name) id = tostring(id) assert(not barregistry[id], "duplicated entry in barregistry.") local bar = setmetatable(CreateFrame("Frame", ("BT4Bar%s"):format(id), UIParent, "SecureHandlerStateTemplate"), Bar_MT) barregistry[id] = bar + table_insert(snapBars, bar) + bar.id = id bar.name = name or id bar:SetMovable(true) diff --git a/libs/SimpleSticky.lua b/libs/SimpleSticky.lua index 88388b0..f49afaa 100644 --- a/libs/SimpleSticky.lua +++ b/libs/SimpleSticky.lua @@ -134,7 +134,8 @@ function StickyFrames:GetUpdateFunc(frame, frameList, xoffset, yoffset, left, to frame:SetPoint("CENTER", UIParent, "BOTTOMLEFT", x+xoffset, y+yoffset) StickyFrames.sticky[frame] = nil - for k,v in pairs(frameList) do + for i = 1, #frameList do + local v = frameList[i] if frame ~= v and not IsShiftKeyDown() and v:IsVisible() then if self:SnapFrame(frame, v, left, top, right, bottom) then StickyFrames.sticky[frame] = v