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 ),