Hey!
So I've been messing w/ Blizzard_ObjectiveTracker for quite some time, but recently I discovered a bit weird issue. Here's how it happens.
At first I modify (a.k.a. taint) objective tracker's constant, for example,
OBJECTIVE_TRACKER_UPDATE_ALL = 0xFFFFFFFF. I think that taint reaches world map frame, when
QuestObjectiveTracker_UpdatePOIs is called from world map's
QuestMapFrame_UpdateAll function.
But here's a weird part. It doesn't break either objective tracker, or world map itself, they work fine. However, it affects two frames,
WorldMapFrame.UIElementsFrame.BountyBoard and
WorldMapFrame.UIElementsFrame.ActionButton. So neither :Hide(), nor :SetPoint(), nor :ClearAllPoints() methods can be called in combat. I just get cold "An action was blocked in combat because of taint" warning.
Tweaking Blizzard_ObjectiveTracker was causing no problems before Legion pre-patch, but right now it's pretty much impossible cuz of described issue.
Was this change intended? TBH, it makes no sense.
Example of warning message.
Code:
8/20 16:49:10.879 An action was blocked in combat because of taint from ls_UI - <unnamed>:Hide()
8/20 16:49:10.879 Interface\FrameXML\WorldMapActionButton.lua:58 <unnamed>:Clear()
8/20 16:49:10.879 Interface\FrameXML\WorldMapActionButton.lua:67 <unnamed>:Refresh()
8/20 16:49:10.879 Interface\FrameXML\WorldMapActionButton.lua:19 <unnamed>:SetMapAreaID()
8/20 16:49:10.879 Interface\FrameXML\WorldMapFrame.lua:390
8/20 16:49:10.879 WorldMapFrame:Hide()
8/20 16:49:10.879 Interface\FrameXML\UIParent.lua:2320 <unnamed>:SetUIPanel()
8/20 16:49:10.879 Interface\FrameXML\UIParent.lua:2347 <unnamed>:MoveUIPanel()
8/20 16:49:10.879 Interface\FrameXML\UIParent.lua:2378 <unnamed>:HideUIPanel()
8/20 16:49:10.879 Interface\FrameXML\UIParent.lua:2052
8/20 16:49:10.879 <unnamed>:SetAttribute()
8/20 16:49:10.879 Interface\FrameXML\UIParent.lua:2846 HideUIPanel()
8/20 16:49:10.879 Interface\FrameXML\UIParent.lua:2812 ToggleFrame()
8/20 16:49:10.879 Interface\FrameXML\WorldMapFrame.lua:219 ToggleWorldMap()