|
|
|
|
local E, L, V, P, G = unpack(ElvUI)
|
|
|
|
|
local BL = E:GetModule('Blizzard')
|
|
|
|
|
|
|
|
|
|
local _G = _G
|
|
|
|
|
local ShowUIPanel = ShowUIPanel
|
|
|
|
|
local GetInstanceInfo = GetInstanceInfo
|
|
|
|
|
local InCombatLockdown = InCombatLockdown
|
|
|
|
|
|
|
|
|
|
local C_TalkingHead_SetConversationsDeferred = C_TalkingHead.SetConversationsDeferred
|
|
|
|
|
|
|
|
|
|
function BL:ObjectiveTracker_AutoHideOnHide()
|
|
|
|
|
local tracker = _G.ObjectiveTrackerFrame
|
|
|
|
|
if not tracker or BL:ObjectiveTracker_IsCollapsed(tracker) then return end
|
|
|
|
|
|
|
|
|
|
if E.db.general.objectiveFrameAutoHideInKeystone then
|
|
|
|
|
BL:ObjectiveTracker_Collapse(tracker)
|
|
|
|
|
else
|
|
|
|
|
local _, _, difficultyID = GetInstanceInfo()
|
|
|
|
|
if difficultyID ~= 8 then -- ignore hide in keystone runs
|
|
|
|
|
BL:ObjectiveTracker_Collapse(tracker)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- Clone of SplashFrameMixin:OnHide() to remove Objective Update to prevent taint on the Quest Button
|
|
|
|
|
local function SplashFrame_OnHide(frame)
|
|
|
|
|
local fromGameMenu = frame.screenInfo and frame.screenInfo.gameMenuRequest
|
|
|
|
|
frame.screenInfo = nil
|
|
|
|
|
|
|
|
|
|
C_TalkingHead_SetConversationsDeferred(false)
|
|
|
|
|
_G.AlertFrame:SetAlertsEnabled(true, 'splashFrame')
|
|
|
|
|
-- ObjectiveTrackerFrame:Update()
|
|
|
|
|
|
|
|
|
|
if fromGameMenu and not frame.showingQuestDialog and not InCombatLockdown() then
|
|
|
|
|
ShowUIPanel(_G.GameMenuFrame)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
frame.showingQuestDialog = nil
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function BL:ObjectiveTracker_Setup()
|
|
|
|
|
BL:ObjectiveTracker_AutoHide()
|
|
|
|
|
|
|
|
|
|
local splash = _G.SplashFrame
|
|
|
|
|
if splash then
|
|
|
|
|
splash:SetScript('OnHide', SplashFrame_OnHide)
|
|
|
|
|
end
|
|
|
|
|
end
|