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; }