From ddeb856372a2fdffd822ac12144b0a89de9087ad Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:29:18 +0100 Subject: [PATCH] [OOBE]Fix msgMonitor to prevent window maximizing (#31136) --- .../SettingsXAML/OobeWindow.xaml.cs | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs index 40dee8b61c..096a76b8a1 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs @@ -20,7 +20,7 @@ namespace Microsoft.PowerToys.Settings.UI /// /// An empty window that can be used on its own or navigated to within a Frame. /// - public sealed partial class OobeWindow : WindowEx + public sealed partial class OobeWindow : WindowEx, IDisposable { private PowerToysModules initialModule; @@ -31,6 +31,8 @@ namespace Microsoft.PowerToys.Settings.UI private WindowId _windowId; private IntPtr _hWnd; private AppWindow _appWindow; + private WindowMessageMonitor _msgMonitor; + private bool disposedValue; public OobeWindow(PowerToysModules initialModule) { @@ -59,8 +61,8 @@ namespace Microsoft.PowerToys.Settings.UI this.initialModule = initialModule; - var msgMonitor = new WindowMessageMonitor(this); - msgMonitor.WindowMessageReceived += (_, e) => + _msgMonitor = new WindowMessageMonitor(this); + _msgMonitor.WindowMessageReceived += (_, e) => { const int WM_NCLBUTTONDBLCLK = 0x00A3; if (e.Message.MessageId == WM_NCLBUTTONDBLCLK) @@ -132,5 +134,22 @@ namespace Microsoft.PowerToys.Settings.UI mainWindow.CloseHiddenWindow(); } } + + private void Dispose(bool disposing) + { + if (!disposedValue) + { + _msgMonitor?.Dispose(); + + disposedValue = true; + } + } + + public void Dispose() + { + // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method + Dispose(disposing: true); + GC.SuppressFinalize(this); + } } }