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.