From 86ce476ad1be60969ee65192c93d95cfb461312a Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Sun, 16 Jan 2022 14:33:15 +1000 Subject: [PATCH] Clean up `PauseWhenMenuActivated` Disabled `Emulation` > `Pause` menu item when this feature is enabled. It would be possible, though annoying, to have it affect `_wasPaused` instead of the main `EmulatorPaused` while this feature is enabled. --- src/BizHawk.Client.EmuHawk/MainForm.Events.cs | 48 +++++-------------- src/BizHawk.Client.EmuHawk/MainForm.cs | 1 + 2 files changed, 12 insertions(+), 37 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs index e0c35a5d5e..322e642fdd 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -602,6 +602,7 @@ namespace BizHawk.Client.EmuHawk private void EmulationMenuItem_DropDownOpened(object sender, EventArgs e) { PauseMenuItem.Checked = _didMenuPause ? _wasPaused : EmulatorPaused; + PauseMenuItem.Enabled = !Config.PauseWhenMenuActivated; SoftResetMenuItem.Enabled = Emulator.ControllerDefinition.BoolButtons.Contains("Reset") && !MovieSession.Movie.IsPlaying(); @@ -2143,9 +2144,7 @@ namespace BizHawk.Client.EmuHawk private void MainFormContextMenu_Opening(object sender, System.ComponentModel.CancelEventArgs e) { - _wasPaused = EmulatorPaused; - _didMenuPause = true; - PauseEmulator(); + MaybePauseFromMenuOpened(); OpenRomContextMenuItem.Visible = Emulator.IsNull() || _inFullscreen; @@ -2242,12 +2241,7 @@ namespace BizHawk.Client.EmuHawk } private void MainFormContextMenu_Closing(object sender, ToolStripDropDownClosingEventArgs e) - { - if (!_wasPaused) - { - UnpauseEmulator(); - } - } + => MaybeUnpauseFromMenuClosed(); private void DisplayConfigMenuItem_Click(object sender, EventArgs e) { @@ -2460,28 +2454,12 @@ namespace BizHawk.Client.EmuHawk private void MainForm_Activated(object sender, EventArgs e) { - if (!Config.RunInBackground) - { - if (!_wasPaused) - { - UnpauseEmulator(); - } - - _wasPaused = false; - } + if (!Config.RunInBackground) MaybeUnpauseFromMenuClosed(); } private void MainForm_Deactivate(object sender, EventArgs e) { - if (!Config.RunInBackground) - { - if (EmulatorPaused) - { - _wasPaused = true; - } - - PauseEmulator(); - } + if (!Config.RunInBackground) MaybePauseFromMenuOpened(); } private void TimerMouseIdle_Tick(object sender, EventArgs e) @@ -2537,22 +2515,18 @@ namespace BizHawk.Client.EmuHawk public void MaybePauseFromMenuOpened() { - if (Config.PauseWhenMenuActivated) - { - _wasPaused = EmulatorPaused; - _didMenuPause = true; - PauseEmulator(); - } + if (!Config.PauseWhenMenuActivated) return; + _wasPaused = EmulatorPaused; + PauseEmulator(); + _didMenuPause = true; // overwrites value set during PauseEmulator call } private void MainformMenu_MenuDeactivate(object sender, EventArgs e) => MaybeUnpauseFromMenuClosed(); public void MaybeUnpauseFromMenuClosed() { - if (!_wasPaused) - { - UnpauseEmulator(); - } + if (_wasPaused || !Config.PauseWhenMenuActivated) return; + UnpauseEmulator(); } private static void FormDragEnter(object sender, DragEventArgs e) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index b280ffd54b..95f1ad9096 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -789,6 +789,7 @@ namespace BizHawk.Client.EmuHawk private set { + _didMenuPause = false; // overwritten where relevant if (_emulatorPaused && !value) // Unpausing { InitializeFpsData();