Set menu de/activate handlers on tool form MenuStrips (fixes #2281)

these call methods on MainForm, which decides whether or not to pause/unpause
This commit is contained in:
YoshiRulz 2020-08-17 02:51:39 +10:00
parent 1c5f9fccb3
commit 8e72dddd41
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
3 changed files with 24 additions and 2 deletions

View File

@ -69,6 +69,10 @@ namespace BizHawk.Client.EmuHawk
/// <remarks>only referenced from <see cref="BookmarksBranchesBox"/></remarks>
BitmapBuffer MakeScreenshotImage();
void MaybePauseFromMenuOpened();
void MaybeUnpauseFromMenuClosed();
void PauseEmulator();
/// <remarks>only referenced from <see cref="TAStudio"/></remarks>

View File

@ -2554,6 +2554,11 @@ namespace BizHawk.Client.EmuHawk
private void MainformMenu_MenuActivate(object sender, EventArgs e)
{
HandlePlatformMenus();
MaybePauseFromMenuOpened();
}
public void MaybePauseFromMenuOpened()
{
if (Config.PauseWhenMenuActivated)
{
_wasPaused = EmulatorPaused;
@ -2562,7 +2567,9 @@ namespace BizHawk.Client.EmuHawk
}
}
private void MainformMenu_MenuDeactivate(object sender, EventArgs e)
private void MainformMenu_MenuDeactivate(object sender, EventArgs e) => MaybeUnpauseFromMenuClosed();
public void MaybeUnpauseFromMenuClosed()
{
if (!_wasPaused)
{

View File

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
@ -130,5 +131,15 @@ namespace BizHawk.Client.EmuHawk
{
return Tools.IsOnScreen(topLeft);
}
protected override void OnLoad(EventArgs e)
{
if (MainMenuStrip != null)
{
MainMenuStrip.MenuActivate += (sender, args) => MainForm.MaybePauseFromMenuOpened();
MainMenuStrip.MenuDeactivate += (sender, args) => MainForm.MaybeUnpauseFromMenuClosed();
}
base.OnLoad(e);
}
}
}