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;