From dbd0f09052d0130f6f617ee0545fd6b54fcee38e Mon Sep 17 00:00:00 2001 From: goat <16760685+goaaats@users.noreply.github.com> Date: Mon, 12 Apr 2021 03:13:39 +0200 Subject: [PATCH] feat: add settings option for viewports --- Dalamud/Interface/DalamudSettingsWindow.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Dalamud/Interface/DalamudSettingsWindow.cs b/Dalamud/Interface/DalamudSettingsWindow.cs index d0b467e32..c11bfa82f 100644 --- a/Dalamud/Interface/DalamudSettingsWindow.cs +++ b/Dalamud/Interface/DalamudSettingsWindow.cs @@ -37,6 +37,7 @@ namespace Dalamud.Interface this.doToggleUiHideDuringGpose = this.dalamud.Configuration.ToggleUiHideDuringGpose; this.doDocking = this.dalamud.Configuration.IsDocking; + this.doViewport = !this.dalamud.Configuration.IsNeverViewport; this.doPluginTest = this.dalamud.Configuration.DoPluginTest; this.thirdRepoList = this.dalamud.Configuration.ThirdRepoList.Select(x => x.Clone()).ToList(); @@ -130,6 +131,7 @@ namespace Dalamud.Interface private bool doToggleUiHideDuringCutscenes; private bool doToggleUiHideDuringGpose; private bool doDocking; + private bool doViewport; private List thirdRepoList; private bool printPluginsWelcomeMsg; @@ -215,6 +217,9 @@ namespace Dalamud.Interface ImGui.Dummy(new Vector2(10f, 16f) * ImGui.GetIO().FontGlobalScale); + ImGui.Checkbox(Loc.Localize("DalamudSettingToggleViewports", "Enable multi-monitor windows"), ref this.doViewport); + ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingToggleViewportsHint", "This will allow you move plugin windows onto other monitors.\nWill only work in Borderless Window or Windowed mode.")); + ImGui.Checkbox(Loc.Localize("DalamudSettingToggleDocking", "Enable window docking"), ref this.doDocking); ImGui.TextColored(this.hintTextColor, Loc.Localize("DalamudSettingToggleDockingHint", "This will allow you to fuse and tab plugin windows.")); @@ -369,6 +374,9 @@ namespace Dalamud.Interface this.dalamud.Configuration.IsDocking = this.doDocking; + // This is applied every frame in InterfaceManager::CheckViewportState() + this.dalamud.Configuration.IsNeverViewport = !this.doViewport; + // Apply docking flag if (!this.dalamud.Configuration.IsDocking) {