From 69d29c39f535e419916380e7c2ee1ad2bdff0c12 Mon Sep 17 00:00:00 2001 From: James Groom Date: Fri, 8 Mar 2024 21:42:20 +1000 Subject: [PATCH] Fix cheat editor resetting display type when changing size and when choice is no longer valid, default to hex instead of unsigned --- .../tools/Cheats/CheatEdit.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/tools/Cheats/CheatEdit.cs b/src/BizHawk.Client.EmuHawk/tools/Cheats/CheatEdit.cs index 0dd24c9a82..8f1e470b1d 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Cheats/CheatEdit.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Cheats/CheatEdit.cs @@ -180,6 +180,19 @@ namespace BizHawk.Client.EmuHawk private void PopulateTypeDropdown() { + var wasSelected = DisplayTypeDropDown.SelectedItem?.ToString() ?? string.Empty; + bool Reselect() + { + for (var i = 0; i < DisplayTypeDropDown.Items.Count; i++) + { + if (DisplayTypeDropDown.Items[i].ToString() == wasSelected) + { + DisplayTypeDropDown.SelectedIndex = i; + return true; + } + } + return false; + } DisplayTypeDropDown.Items.Clear(); switch (SizeDropDown.SelectedIndex) { @@ -206,8 +219,10 @@ namespace BizHawk.Client.EmuHawk break; } - - DisplayTypeDropDown.SelectedItem = DisplayTypeDropDown.Items[0]; + DisplayTypeDropDown.SelectedIndex = 0; + if (Reselect()) return; + wasSelected = Watch.DisplayTypeToString(WatchDisplayType.Hex); + _ = Reselect(); } private void CheckFormState()