From 96c5618c6b6d50aefbb672870d3035de4ca92dde Mon Sep 17 00:00:00 2001 From: NoM0Re Date: Sat, 11 Jan 2025 16:43:29 +0100 Subject: [PATCH] from retail --- WeakAuras/RegionTypes/RegionPrototype.lua | 4 ++- WeakAuras/SubRegionTypes/SubText.lua | 30 ++++++++++++++--------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/WeakAuras/RegionTypes/RegionPrototype.lua b/WeakAuras/RegionTypes/RegionPrototype.lua index 717ae18..cf5a902 100644 --- a/WeakAuras/RegionTypes/RegionPrototype.lua +++ b/WeakAuras/RegionTypes/RegionPrototype.lua @@ -24,7 +24,9 @@ local SubRegionEventSystem = end, RemoveSubscriber = function(self, event, subRegion) - tremove(self.events[event], tIndexOf(self.events[event], subRegion)) + if self.events[event] then + tremove(self.events[event], tIndexOf(self.events[event], subRegion)) + end end, Notify = function(self, event, ...) diff --git a/WeakAuras/SubRegionTypes/SubText.lua b/WeakAuras/SubRegionTypes/SubText.lua index 09747cb..3fa5cfa 100644 --- a/WeakAuras/SubRegionTypes/SubText.lua +++ b/WeakAuras/SubRegionTypes/SubText.lua @@ -246,18 +246,6 @@ local function modify(parent, region, parentData, data, first) region.FrameTick = FrameTick region.TimerTick = TimerTick - if Update then - parent.subRegionEvents:AddSubscriber("Update", region) - end - - if FrameTick then - parent.subRegionEvents:AddSubscriber("FrameTick", region) - end - - if TimerTick then - parent.subRegionEvents:AddSubscriber("TimerTick", region) - end - if not UpdateText then if text:GetFont() then local textStr = data.text_text @@ -288,7 +276,25 @@ local function modify(parent, region, parentData, data, first) function region:SetVisible(visible) if visible then self:Show() + if self.Update then + parent.subRegionEvents:AddSubscriber("Update", region) + end + if self.FrameTick then + parent.subRegionEvents:AddSubscriber("FrameTick", region) + end + if self.TimerTick then + parent.subRegionEvents:AddSubscriber("TimerTick", region) + end else + if self.Update then + parent.subRegionEvents:RemoveSubscriber("Update", region) + end + if self.FrameTick then + parent.subRegionEvents:RemoveSubscriber("FrameTick", region) + end + if self.TimerTick then + parent.subRegionEvents:RemoveSubscriber("TimerTick", region) + end self:Hide() end end