diff --git a/Dalamud/Interface/ImGuiHelpers.cs b/Dalamud/Interface/ImGuiHelpers.cs index c74fd1c14..5adcaa24b 100644 --- a/Dalamud/Interface/ImGuiHelpers.cs +++ b/Dalamud/Interface/ImGuiHelpers.cs @@ -9,7 +9,10 @@ namespace Dalamud.Interface /// public static class ImGuiHelpers { - private static uint mainViewportId; + /// + /// Gets the main viewport. + /// + public static ImGuiViewportPtr MainViewport { get; internal set; } /// /// Gets the global Dalamud scale. @@ -19,21 +22,7 @@ namespace Dalamud.Interface /// /// Force this ImGui window to stay inside the main game window. /// - public static void ForceMainWindow() => ImGui.SetNextWindowViewport(GetMainViewportId()); - - /// - /// Get the ID of the main game window viewport. - /// - /// The ID of the main game window viewport. - public static uint GetMainViewportId() - { - if (mainViewportId == 0) - mainViewportId = ImGui.GetMainViewport().ID; - - return mainViewportId; - } - - public static Vector2 MainWindowPos { get; set; } + public static void ForceMainWindow() => ImGui.SetNextWindowViewport(MainViewport.ID); /// /// Create a dummy scaled by the global Dalamud scale. @@ -55,7 +44,6 @@ namespace Dalamud.Interface internal static void NewFrame() { GlobalScale = ImGui.GetIO().FontGlobalScale; - MainWindowPos = ImGui.GetMainViewport().Pos; } } } diff --git a/Dalamud/Interface/InterfaceManager.cs b/Dalamud/Interface/InterfaceManager.cs index 1b0400fb9..006b8073f 100644 --- a/Dalamud/Interface/InterfaceManager.cs +++ b/Dalamud/Interface/InterfaceManager.cs @@ -267,6 +267,8 @@ namespace Dalamud.Interface ImGui.GetIO().FontGlobalScale = this.dalamud.Configuration.GlobalUiScale; ImGui.GetIO().ConfigFlags &= ~ImGuiConfigFlags.DockingEnable; + + ImGuiHelpers.MainViewport = ImGui.GetMainViewport(); } // Process information needed by ImGuiHelpers each frame.