diff --git a/EllesmereUI.lua b/EllesmereUI.lua index 866cf8e06..659f7b745 100644 --- a/EllesmereUI.lua +++ b/EllesmereUI.lua @@ -11526,6 +11526,24 @@ initFrame:SetScript("OnEvent", function(self, event) frame:HookScript("OnShow", RefreshProxy) frame:HookScript("OnHide", RefreshProxy) end + + -- Register the Vault once, regardless of which shortcut opens it. + local function RegisterVaultEscapeClose() + if not WeeklyRewardsFrame then return false end + EllesmereUI.RegisterEscapeClose(WeeklyRewardsFrame) + RefreshProxy() + return true + end + + if not RegisterVaultEscapeClose() then + local vaultLoader = CreateFrame("Frame") + vaultLoader:RegisterEvent("ADDON_LOADED") + vaultLoader:SetScript("OnEvent", function(self, event, addonName) + if addonName == "Blizzard_WeeklyRewards" and RegisterVaultEscapeClose() then + self:UnregisterEvent("ADDON_LOADED") + end + end) + end end -- Create native minimap button diff --git a/EllesmereUIDataBars/EllesmereUIDataBars_Blocks.lua b/EllesmereUIDataBars/EllesmereUIDataBars_Blocks.lua index 14b153513..d993f6c8e 100644 --- a/EllesmereUIDataBars/EllesmereUIDataBars_Blocks.lua +++ b/EllesmereUIDataBars/EllesmereUIDataBars_Blocks.lua @@ -6223,7 +6223,6 @@ local function GVToggleVault() end local wrf = _G.WeeklyRewardsFrame if not wrf then return end - if EllesmereUI.RegisterEscapeClose then EllesmereUI.RegisterEscapeClose(wrf) end wrf:SetShown(not wrf:IsShown()) end diff --git a/EllesmereUIMinimap/EllesmereUIMinimap.lua b/EllesmereUIMinimap/EllesmereUIMinimap.lua index 979ca25e9..a3058ce4b 100644 --- a/EllesmereUIMinimap/EllesmereUIMinimap.lua +++ b/EllesmereUIMinimap/EllesmereUIMinimap.lua @@ -1452,12 +1452,6 @@ end local _greatVaultBtn = nil local GREAT_VAULT_WHOLE_ATLAS = "greatVault-whole-normal" -local function RegisterVaultEscClose() - local wrf = _G.WeeklyRewardsFrame - if not wrf or not EllesmereUI.RegisterEscapeClose then return end - EllesmereUI.RegisterEscapeClose(wrf) -end - local function ColorizeVaultText(text, r, g, b) r = math.floor(math.max(0, math.min(1, r or 1)) * 255 + 0.5) g = math.floor(math.max(0, math.min(1, g or 1)) * 255 + 0.5) @@ -1679,7 +1673,6 @@ local function ToggleGreatVault() if Load and IsLoaded and not IsLoaded("Blizzard_WeeklyRewards") then Load("Blizzard_WeeklyRewards") end - RegisterVaultEscClose() if WeeklyRewardsFrame then WeeklyRewardsFrame:SetShown(not WeeklyRewardsFrame:IsShown()) end