From a3bf347e22fdff20fe5b763eef5acd62f9b17d7a Mon Sep 17 00:00:00 2001 From: kalimag Date: Thu, 22 Aug 2024 22:59:34 +0200 Subject: [PATCH] Defer main window resize while minimized/maximized --- src/BizHawk.Client.EmuHawk/MainForm.Events.cs | 5 +++++ src/BizHawk.Client.EmuHawk/MainForm.cs | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs index ccc454e3f9..0c4f265fc8 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -1585,6 +1585,11 @@ namespace BizHawk.Client.EmuHawk private void MainForm_Resize(object sender, EventArgs e) { _presentationPanel.Resized = true; + if (_framebufferResizedPending && WindowState is FormWindowState.Normal) + { + _framebufferResizedPending = false; + FrameBufferResized(); + } } private void MainForm_Shown(object sender, EventArgs e) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index 17073ba1e7..ceba2bd2d4 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -1390,6 +1390,12 @@ namespace BizHawk.Client.EmuHawk public void FrameBufferResized(bool forceWindowResize = false) { + if (WindowState is not FormWindowState.Normal) + { + // Wait until no longer maximized/minimized to get correct size/location values + _framebufferResizedPending = true; + return; + } if (!Config.ResizeWithFramebuffer && !forceWindowResize) { return; @@ -1692,6 +1698,7 @@ namespace BizHawk.Client.EmuHawk private bool _inFullscreen; private Point _windowedLocation; private bool _needsFullscreenOnLoad; + private bool _framebufferResizedPending; private int _lastOpenRomFilter;