You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
2.0 KiB

local SLE, T, E, L, V, P, G = unpack(ElvUI_SLE)
local M = SLE.Misc
local _G = _G
M.ViewportInitialized = false
--Viewports
function M:SetAllPoints()
if InCombatLockdown() or SLE._Compatibility['SunnArt'] or not M.ViewportInitialized or not E.private.sle.viewport.enable then return end
M:SetViewport()
end
function M:SetViewport(event)
if SLE._Compatibility['SunnArt'] or not M.ViewportInitialized or not E.private.sle.viewport.enable then return end --compatibility check in the func itself just in case
if InCombatLockdown() then --Don't touch stuff in combat
M:RegisterEvent("PLAYER_REGEN_ENABLED", M.SetViewport) --Register as M, cause self may be the world frame itself when called from WorldFrame.SetAllPoints/M:SetAllPoints
return
end
if event == "PLAYER_REGEN_ENABLED" then M:UnregisterEvent(event) end --Unreg combat end event, cause we need it only once anyways
local scale = E.global.general.UIScale --Get UI scale
--Reposition world frame, this actually creating viewport
_G.WorldFrame:ClearAllPoints()
_G.WorldFrame:SetPoint('TOPLEFT', (M.db.viewport.left * scale), -(M.db.viewport.top * scale))
_G.WorldFrame:SetPoint('BOTTOMRIGHT', -(M.db.viewport.right * scale), (M.db.viewport.bottom * scale))
end
function M:Initialize()
if not SLE.initialized then return end
M.db = E.db.sle.misc
--Viewport
if SLE._Compatibility['SunnArt'] or not E.private.sle.viewport.enable then return end --do not enable if otherr stuff is there
M.ViewportInitialized = true
WorldFrame.ORSetAll = WorldFrame.SetAllPoints
WorldFrame.SetAllPoints = M.SetAllPoints
-- Possible Fix for Cut Scene issues during a raid
CinematicFrame:SetScript('OnShow', nil)
CinematicFrame:SetScript('OnHide', nil)
hooksecurefunc(E, 'PixelScaleChanged', M.SetViewport)
function M:ForUpdateAll()
M.db = E.db.sle.misc
M:SetViewport()
end
M:RegisterEvent("LOADING_SCREEN_DISABLED", M.SetViewport)
M:RegisterEvent("CINEMATIC_STOP", M.SetViewport)
end
SLE:RegisterModule(M:GetName())