From efdf9ca1eecbd80b5cc1bf0a421fe20e84f91809 Mon Sep 17 00:00:00 2001 From: goat <16760685+goaaats@users.noreply.github.com> Date: Mon, 5 Apr 2021 17:36:45 +0200 Subject: [PATCH] feat: cache viewport ID in ImGuiHelpers --- Dalamud/Interface/ImGuiHelpers.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Dalamud/Interface/ImGuiHelpers.cs b/Dalamud/Interface/ImGuiHelpers.cs index 90a400d52..57ff6e405 100644 --- a/Dalamud/Interface/ImGuiHelpers.cs +++ b/Dalamud/Interface/ImGuiHelpers.cs @@ -7,9 +7,23 @@ namespace Dalamud.Interface /// public static class ImGuiHelpers { + private static uint mainViewportId; + /// /// Force this ImGui window to stay inside the main game window. /// - public static void ForceMainWindow() => ImGui.SetNextWindowViewport(ImGui.GetMainViewport().ID); + 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; + } } }