From 578b688d51aeb90fb6d63a90f8a17eb17f61d28d Mon Sep 17 00:00:00 2001 From: feos Date: Sun, 13 Nov 2016 16:42:24 +0300 Subject: [PATCH] tastudio analog editing: Escape key cancels all changes also prevent marker set from entering analog mode and releasing the LMB over the frame column (might happen after drag editing) --- .../tools/TAStudio/TAStudio.ListView.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs index b7215de59f..3e850bedac 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.ListView.cs @@ -17,6 +17,7 @@ namespace BizHawk.Client.EmuHawk private string _startFloatDrawColumn = string.Empty; private bool _boolPaintState; private float _floatPaintState; + private float _floatBackupState; private bool _patternPaint = false; private bool _startCursorDrag; private bool _startSelectionDrag; @@ -539,6 +540,7 @@ namespace BizHawk.Client.EmuHawk floatEditRow = frame; _floatTypedValue = ""; _floatEditYPos = e.Y; + _floatBackupState = CurrentTasMovie.GetFloatState(_floatEditRow, _floatEditColumn); _triggerAutoRestore = true; JumpToGreenzone(); } @@ -699,7 +701,8 @@ namespace BizHawk.Client.EmuHawk var buttonName = TasView.CurrentCell.Column.Name; if (TasView.CurrentCell.RowIndex.HasValue && - buttonName == FrameColumnName) + buttonName == FrameColumnName && + _floatEditRow == -1) { if (Settings.EmptyMarkers) { @@ -1036,10 +1039,16 @@ namespace BizHawk.Client.EmuHawk } else if (e.KeyCode == Keys.Escape) { - if (_floatEditYPos != -1) // Cancel change from dragging cursor + if (_floatEditYPos != -1) { _floatEditYPos = -1; - CurrentTasMovie.SetFloatState(_floatEditRow, _floatEditColumn, _floatPaintState); + } + if (_floatBackupState != _floatPaintState) + { + CurrentTasMovie.SetFloatState(_floatEditRow, _floatEditColumn, _floatBackupState); + _triggerAutoRestore = true; + JumpToGreenzone(); + DoTriggeredAutoRestoreIfNeeded(); } floatEditRow = -1; }