From c97b8e8e9aaff77eb18adb762a6f8c1c6a39c60b Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Mon, 6 Jun 2022 22:23:51 +0200 Subject: [PATCH] Add option to fix the penumbra window. --- Penumbra/Configuration.cs | 2 +- Penumbra/Penumbra.cs | 6 ++++++ Penumbra/UI/ConfigWindow.SettingsTab.cs | 8 ++++++++ Penumbra/UI/ConfigWindow.cs | 12 ++++++++---- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Penumbra/Configuration.cs b/Penumbra/Configuration.cs index 5888a8e1..83f0982d 100644 --- a/Penumbra/Configuration.cs +++ b/Penumbra/Configuration.cs @@ -45,7 +45,7 @@ public partial class Configuration : IPluginConfiguration public int ModSelectorScaledSize { get; set; } = Constants.DefaultScaledSize; public bool OpenFoldersByDefault { get; set; } = false; - + public bool FixMainWindow { get; set; } = false; public bool ShowAdvanced { get; set; } public bool DisableSoundStreaming { get; set; } = true; public bool EnableHttpApi { get; set; } diff --git a/Penumbra/Penumbra.cs b/Penumbra/Penumbra.cs index 5d2dabda..8ded28f1 100644 --- a/Penumbra/Penumbra.cs +++ b/Penumbra/Penumbra.cs @@ -360,6 +360,12 @@ public class Penumbra : IDisposable : modsDisabled ); break; } + case "unfix": + { + Config.FixMainWindow = false; + _configWindow.Flags &= ~( ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoResize ); + break; + } case "collection": { if( args.Length == 2 ) diff --git a/Penumbra/UI/ConfigWindow.SettingsTab.cs b/Penumbra/UI/ConfigWindow.SettingsTab.cs index 6db24860..7a3080ef 100644 --- a/Penumbra/UI/ConfigWindow.SettingsTab.cs +++ b/Penumbra/UI/ConfigWindow.SettingsTab.cs @@ -37,6 +37,14 @@ public partial class ConfigWindow DrawEnabledBox(); DrawShowAdvancedBox(); + Checkbox( "Fix Main Window", "Prevent the main window from being resized or moved.", Penumbra.Config.FixMainWindow, v => + { + Penumbra.Config.FixMainWindow = v; + _window.Flags = v + ? _window.Flags | ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoResize + : _window.Flags & ~( ImGuiWindowFlags.NoMove | ImGuiWindowFlags.NoResize ); + } ); + ImGui.NewLine(); DrawRootFolder(); DrawRediscoverButton(); diff --git a/Penumbra/UI/ConfigWindow.cs b/Penumbra/UI/ConfigWindow.cs index 099c19b0..fa51d332 100644 --- a/Penumbra/UI/ConfigWindow.cs +++ b/Penumbra/UI/ConfigWindow.cs @@ -36,11 +36,15 @@ public sealed partial class ConfigWindow : Window, IDisposable _debugTab = new DebugTab( this ); _resourceTab = new ResourceTab( this ); Flags |= ImGuiWindowFlags.NoDocking; + if( Penumbra.Config.FixMainWindow ) + { + Flags |= ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoMove; + } - Dalamud.PluginInterface.UiBuilder.DisableGposeUiHide = !Penumbra.Config.HideUiInGPose; - Dalamud.PluginInterface.UiBuilder.DisableCutsceneUiHide = !Penumbra.Config.HideUiInCutscenes; - Dalamud.PluginInterface.UiBuilder.DisableUserUiHide = !Penumbra.Config.HideUiWhenUiHidden; - RespectCloseHotkey = true; + Dalamud.PluginInterface.UiBuilder.DisableGposeUiHide = !Penumbra.Config.HideUiInGPose; + Dalamud.PluginInterface.UiBuilder.DisableCutsceneUiHide = !Penumbra.Config.HideUiInCutscenes; + Dalamud.PluginInterface.UiBuilder.DisableUserUiHide = !Penumbra.Config.HideUiWhenUiHidden; + RespectCloseHotkey = true; SizeConstraints = new WindowSizeConstraints() { MinimumSize = new Vector2( 800, 600 ),