diff --git a/Dominos/plugins/blizzardHider.lua b/Dominos/plugins/blizzardHider.lua index 52ba2a22..b2b5206c 100644 --- a/Dominos/plugins/blizzardHider.lua +++ b/Dominos/plugins/blizzardHider.lua @@ -4,56 +4,71 @@ --]] local _, Addon =... +local HiddenFrame = CreateFrame('Frame', nil, UIParent); HiddenFrame:Hide() -local hiddenFrame = CreateFrame('Frame', nil, _G['UIParent'], 'SecureFrameTemplate'); -hiddenFrame:Hide() +local function hideFrames(...) + for i = 1, select("#", ...) do + local frameName = select(i, ...) + local frame = _G[frameName] -local function disableFrame(frameName, unregisterEvents) - local frame = _G[frameName] - - if not frame then - Addon:Print('Unknown Frame', frameName) - return + if frame then + frame:SetParent(HiddenFrame) + frame.ignoreFramePositionManager = true + else + Addon:Print('Unknown Frame', frameName) + end end +end - frame:SetParent(hiddenFrame) - frame.ignoreFramePositionManager = true +-- disable override bar transition animations +local function disableSlideOutAnimations(...) + for i = 1, select("#", ...) do + local frameName = select(i, ...) + local frame = _G[frameName] - if unregisterEvents then - frame:UnregisterAllEvents() + if frame then + local animation = (frame.slideOut:GetAnimations()) + if animation then + animation:SetOffset(0, 0) + else + Addon:Print('No slideout animation is present on ', frameName) + end + else + Addon:Print('Unknown Frame', frameName) + end end end -local function disableFrameSlidingAnimation(frameName) - local animation = (_G[frameName].slideOut:GetAnimations()) +-- disable but don't reparent and hide the +MainMenuBar:EnableMouse(false) +MainMenuBar.ignoreFramePositionManager = true +MainMenuBar:UnregisterEvent("ACTIONBAR_PAGE_CHANGED") +MainMenuBar:UnregisterEvent("PLAYER_ENTERING_WORLD") +MainMenuBar:UnregisterEvent("DISPLAY_SIZE_CHANGED") +MainMenuBar:UnregisterEvent("UI_SCALE_CHANGED") - animation:SetOffset(0, 0) -end +-- don't reparent the tracking manager, as it assumes its parent has a callback +StatusTrackingBarManager:UnregisterAllEvents() +StatusTrackingBarManager:Hide() -do - -- disable, but don't hide the menu bar to work around Blizzard assumptions - _G['MainMenuBar']:EnableMouse(false) - _G['MainMenuBar'].ignoreFramePositionManager = true - - -- disable override bar transition animations - disableFrameSlidingAnimation('MainMenuBar') - disableFrameSlidingAnimation('OverrideActionBar') - - disableFrame('MultiBarBottomLeft') - disableFrame('MultiBarBottomRight') - disableFrame('MultiBarLeft') - disableFrame('MultiBarRight') - disableFrame('MainMenuBarArtFrame') - disableFrame('StanceBarFrame') - disableFrame('PossessBarFrame') - disableFrame('PetActionBarFrame') - disableFrame('MultiCastActionBarFrame') - disableFrame('MicroButtonAndBagsBar') - disableFrame('MainMenuBarPerformanceBar') - - _G.StatusTrackingBarManager:UnregisterAllEvents() - _G.StatusTrackingBarManager:Hide() - - -- disable multiactionbar_update to prevent some taint issues - _G.MultiActionBar_Update = Multibar_EmptyFunc -end +disableSlideOutAnimations( + 'MainMenuBar', + 'OverrideActionBar' +) + +hideFrames( + 'MultiBarBottomLeft', + 'MultiBarBottomRight', + 'MultiBarLeft', + 'MultiBarRight', + 'MainMenuBarArtFrame', + 'StanceBarFrame', + 'PossessBarFrame', + 'PetActionBarFrame', + 'MultiCastActionBarFrame', + 'MicroButtonAndBagsBar', + 'MainMenuBarPerformanceBar' +) + +-- disable multiactionbar_update to prevent some taint issues +MultiActionBar_Update = Multibar_EmptyFunc