I think i have come up with a fix for the infamous worldmapblobframe. Now the only problem with it is that when you leave combat it will automaticlly turn on quest tracking on the WorldMap. I always have mine on so to me this is not a big issue. I think somehow one could add a GetChecked to the begining and store a variable then use the variable to make the exiting combat function load your checked state accordingly. But for the most part this will fix any of the WorldMapBlobFrame issues when it comes to toggling the worldmap in combat for any reason via an addon.
lua Code:
local GUIWorldMapEvents = CreateFrame("Frame", nil, UIParent)
GUIWorldMapEvents:RegisterEvent("PLAYER_ENTERING_WORLD")
GUIWorldMapEvents:RegisterEvent("PLAYER_REGEN_ENABLED")
GUIWorldMapEvents:RegisterEvent("PLAYER_REGEN_DISABLED")
GUIWorldMapEvents:SetScript("OnEvent", function(self)
if event == "PLAYER_ENTERING_WORLD" then
ShowUIPanel(WorldMapFrame)
HideUIPanel(WorldMapFrame)
elseif event == "PLAYER_REGEN_DISABLED" then
WatchFrame.showObjectives = nil;
WorldMapQuestShowObjectives:SetChecked(false)
WorldMapQuestShowObjectives:Hide()
WorldMapTrackQuest:Hide()
WorldMapTitleButton:Hide()
WorldMapFrameSizeUpButton:Hide()
WorldMapBlobFrame:Hide()
WorldMapPOIFrame:Hide()
WorldMapFrameSizeUpButton.Show = GrimUI.Dummy
WorldMapQuestShowObjectives.Show = GrimUI.Dummy
WorldMapTrackQuest.Show = GrimUI.Dummy
WorldMapTitleButton.Show = GrimUI.Dummy
WorldMapBlobFrame.Show = GrimUI.Dummy
WorldMapPOIFrame.Show = GrimUI.Dummy
WatchFrame_Update();
elseif event == "PLAYER_REGEN_ENABLED" then
WorldMapFrameSizeUpButton.Show = WorldMapFrameSizeUpButton:Show()
WorldMapQuestShowObjectives.Show = WorldMapQuestShowObjectives:Show()
WorldMapTrackQuest.Show = WorldMapTrackQuest:Show()
WorldMapTitleButton.Show = WorldMapTitleButton:Show()
WorldMapBlobFrame.Show = WorldMapBlobFrame:Show()
WorldMapPOIFrame.Show = WorldMapPOIFrame:Show()
WatchFrame.showObjectives = true;
WorldMapQuestShowObjectives:SetChecked(true)
WorldMapQuestShowObjectives:Show()
WorldMapTrackQuest:Show()
WorldMapTitleButton:Show()
WorldMapFrameSizeUpButton:Show()
WorldMapBlobFrame:Show()
WorldMapPOIFrame:Show()
WatchFrame_Update();
end
end)