tastudio: properly set input while unpaused

replicates taseditor behavior: if autorestore is off, emulation resumes running, otherwise it pauses on it.
todo: fix this during left button held
This commit is contained in:
feos 2016-07-10 22:25:02 +03:00
parent 7c868e5996
commit f23767ae6a
3 changed files with 41 additions and 1 deletions

View File

@ -1428,6 +1428,38 @@ namespace BizHawk.Client.EmuHawk
RowScroll(this, e);
}
}
if (!GlobalWin.MainForm.EmulatorPaused && _currentX.HasValue)
{
Cell newCell = CalculatePointedCell(_currentX.Value, _currentY.Value);
// SuuperW: Hide lag frames
if (QueryFrameLag != null && newCell.RowIndex.HasValue)
{
newCell.RowIndex += CountLagFramesDisplay(newCell.RowIndex.Value);
}
newCell.RowIndex += FirstVisibleRow;
if (newCell.RowIndex < 0)
newCell.RowIndex = 0;
if (!newCell.Equals(CurrentCell))
{
CellChanged(newCell);
if (IsHoveringOnColumnCell ||
(WasHoveringOnColumnCell && !IsHoveringOnColumnCell))
{
Refresh();
}
else if (_columnDown != null)
{
Refresh();
}
}
else if (_columnDown != null) // Kind of silly feeling to have this check twice, but the only alternative I can think of has it refreshing twice when pointed column changes with column down, and speed matters
{
Refresh();
}
}
}
private void HorizontalBar_ValueChanged(object sender, EventArgs e)

View File

@ -453,6 +453,7 @@ namespace BizHawk.Client.EmuHawk
}
else // User changed input
{
bool wasPaused = GlobalWin.MainForm.EmulatorPaused;
if (Global.MovieSession.MovieControllerAdapter.Type.BoolButtons.Contains(buttonName))
{
CurrentTasMovie.ChangeLog.BeginNewBatch("Paint Bool " + buttonName + " from frame " + frame);
@ -523,6 +524,13 @@ namespace BizHawk.Client.EmuHawk
RefreshDialog();
}
}
// taseditor behavior
if (!wasPaused)
GlobalWin.MainForm.UnpauseEmulator();
if (!Settings.AutoRestoreLastPosition)
IgnoreSeekFrame = true;
}
}
else if (e.Button == System.Windows.Forms.MouseButtons.Right)

View File

@ -68,7 +68,7 @@ namespace BizHawk.Client.EmuHawk
FollowCursorScrollMethod = "near";
BranchCellHoverInterval = 1;
SeekingCutoffInterval = 2; // unused, relying on VisibleRows is smarter
AutoRestoreOnMouseUpOnly = true;
AutoRestoreOnMouseUpOnly = false; // default to taseditor way, must be harmless since we suspend rerecord counting while drawing
AutosaveInterval = 120000;
AutosaveAsBk2 = false;
AutosaveAsBackupFile = false;