tastudio: ignore seek frame if unpaused via hotkey or playback pause button

this replicates taseditor behavior
This commit is contained in:
feos 2016-06-11 17:38:53 +03:00
parent 32be07ce03
commit 294654943b
4 changed files with 16 additions and 1 deletions

View File

@ -14,6 +14,10 @@ namespace BizHawk.Client.EmuHawk
// General
case "Pause":
// check this here since TogglePause() has no idea who triggered it
// and we need to treat pause hotkey specially in tastudio
if (GlobalWin.MainForm.EmulatorPaused)
GlobalWin.Tools.TAStudio.IgnoreSeekFrame = true;
TogglePause();
break;
case "Toggle Throttle":

View File

@ -97,6 +97,8 @@ namespace BizHawk.Client.EmuHawk
private void PauseButton_Click(object sender, EventArgs e)
{
if (GlobalWin.MainForm.EmulatorPaused)
Tastudio.IgnoreSeekFrame = true;
Tastudio.TogglePause();
}

View File

@ -92,6 +92,11 @@ namespace BizHawk.Client.EmuHawk
public void StopSeeking()
{
_seekBackgroundWorker.CancelAsync();
if (IgnoreSeekFrame)
{
GlobalWin.MainForm.UnpauseEmulator();
IgnoreSeekFrame = false;
}
}
public bool FloatEditingMode
@ -393,6 +398,8 @@ namespace BizHawk.Client.EmuHawk
if (e.Button == MouseButtons.Middle)
{
if (GlobalWin.MainForm.EmulatorPaused)
IgnoreSeekFrame = false;
TogglePause();
return;
}

View File

@ -51,6 +51,7 @@ namespace BizHawk.Client.EmuHawk
}
public bool IsInMenuLoop { get; private set; }
public bool IgnoreSeekFrame { get; set; }
[ConfigPersist]
public TAStudioSettings Settings { get; set; }
@ -141,6 +142,7 @@ namespace BizHawk.Client.EmuHawk
InitializeSeekWorker();
WantsToControlStopMovie = true;
WantsToControlRestartMovie = true;
TasPlaybackBox.Tastudio = this;
MarkerControl.Tastudio = this;
BookMarkControl.Tastudio = this;
@ -153,7 +155,7 @@ namespace BizHawk.Client.EmuHawk
TasView.PointedCellChanged += TasView_PointedCellChanged;
TasView.MultiSelect = true;
TasView.MaxCharactersInHorizontal = 1;
WantsToControlRestartMovie = true;
IgnoreSeekFrame = false;
}
private void AutosaveTimerEventProcessor(object sender, EventArgs e)