diff --git a/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs b/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs index e85de140a0..3cd63c326b 100644 --- a/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs +++ b/BizHawk.Client.EmuHawk/CustomControls/InputRoll.cs @@ -1196,7 +1196,7 @@ namespace BizHawk.Client.EmuHawk if (AllowRightClickSelecton && e.Button == MouseButtons.Right) { - if (!IsHoveringOnColumnCell) + if (!IsHoveringOnColumnCell && CurrentCell != null) { _currentX = e.X; _currentY = e.Y; diff --git a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs index afe14a1f66..11adfdccb6 100644 --- a/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs +++ b/BizHawk.Client.EmuHawk/tools/Watch/RamSearch.cs @@ -927,32 +927,31 @@ namespace BizHawk.Client.EmuHawk Message = "Enter a hexadecimal value" }; - var result = prompt.ShowHawkDialog(); - - if (result == DialogResult.OK) + while (prompt.ShowHawkDialog() == DialogResult.OK) { - if (prompt.PromptText.IsHex()) + try { - int addr; - try - { - addr = int.Parse(prompt.PromptText, NumberStyles.HexNumber); - } - catch (OverflowException e) - { - //TODO repeat dialog `prompt` / show error? - return; - } - + var addr = int.Parse(prompt.PromptText, NumberStyles.HexNumber); for (int index = 0; index < _searches.Count; index++) { - if (addr == _searches[index].Address) + if (_searches[index].Address == addr) { WatchListView.SelectItem(index, true); WatchListView.ensureVisible(); - break; + return; // Don't re-show dialog on success } } + //TODO add error text to dialog? + // Re-show dialog if the address isn't found + } + catch (FormatException e) + { + // Re-show dialog if given invalid text (shouldn't happen) + } + catch (OverflowException e) + { + //TODO add error text to dialog? + // Re-show dialog if the address isn't valid } } }