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
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())
|
|
|