Use AceBucket to bundle BAG_UPDATE events being mass sent on instance change
This commit is contained in:
@@ -88,4 +88,4 @@ local function ValueColorUpdate(hex)
|
||||
end
|
||||
E.valueColorUpdateFuncs[ValueColorUpdate] = true
|
||||
|
||||
DT:RegisterDatatext("Bags", {"PLAYER_ENTERING_WORLD", "BAG_UPDATE"}, OnEvent, nil, OnClick, OnEnter, nil, L["Bags"])
|
||||
DT:RegisterDatatext("Bags", {"PLAYER_ENTERING_WORLD", buckets = {{ "BAG_UPDATE", 0.2 }}}, OnEvent, nil, OnClick, OnEnter, nil, L["Bags"])
|
||||
@@ -197,9 +197,22 @@ function DT:AssignPanelToDataText(panel, data)
|
||||
end
|
||||
|
||||
if data.events then
|
||||
for _, event in pairs(data.events) do
|
||||
for _, event in ipairs(data.events) do
|
||||
panel:RegisterEvent(event)
|
||||
end
|
||||
|
||||
if data.events.buckets then
|
||||
for _, bucket in ipairs(data.events.buckets) do
|
||||
local event, period, callback = unpack(bucket)
|
||||
if not period then
|
||||
period = 0.1
|
||||
end
|
||||
if not callback then
|
||||
callback = function(arg) data.eventFunc(panel, arg) end
|
||||
end
|
||||
panel:RegisterBucketEvent(event, period, callback)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if data.eventFunc then
|
||||
|
||||
Reference in New Issue
Block a user