From c4b5abd7b5cbb1dabaf64cb813cc951c838a9b4f Mon Sep 17 00:00:00 2001 From: goat <16760685+goaaats@users.noreply.github.com> Date: Mon, 12 Apr 2021 02:55:36 +0200 Subject: [PATCH] feat: implement CheckViewportState() in InterfaceManager --- Dalamud/Interface/InterfaceManager.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Dalamud/Interface/InterfaceManager.cs b/Dalamud/Interface/InterfaceManager.cs index b4a1c436a..c3b3ea770 100644 --- a/Dalamud/Interface/InterfaceManager.cs +++ b/Dalamud/Interface/InterfaceManager.cs @@ -282,11 +282,25 @@ namespace Dalamud.Interface // Process information needed by ImGuiHelpers each frame. ImGuiHelpers.NewFrame(); + // Check if we can still enable viewports without any issues. + this.CheckViewportState(); + this.scene.Render(); return this.presentHook.Original(swapChain, syncInterval, presentFlags); } + private void CheckViewportState() + { + if (this.dalamud.Configuration.IsNeverViewport || this.scene.SwapChain.IsFullScreen || ImGui.GetPlatformIO().Monitors.Size == 1) + { + ImGui.GetIO().ConfigFlags &= ~ImGuiConfigFlags.ViewportsEnable; + return; + } + + ImGui.GetIO().ConfigFlags |= ImGuiConfigFlags.DockingEnable; + } + public static ImFontPtr DefaultFont { get; private set; } public static ImFontPtr IconFont { get; private set; }