From 04e9bf054eba6ba1aa12614fa57b11f26b8a42fd Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Tue, 2 Jul 2024 02:14:07 +0200 Subject: [PATCH] Fix core reboot flag on preference change This now checks core names instead of system ids --- src/BizHawk.Client.EmuHawk/MainForm.cs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index f6a4efb381..7b77a6242c 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -91,18 +91,15 @@ namespace BizHawk.Client.EmuHawk { var groupLabel = appliesTo[0]; var submenu = new ToolStripMenuItem { Text = groupLabel }; - void ClickHandler(object clickSender, EventArgs clickArgs) - { - var coreName = ((ToolStripMenuItem) clickSender).Text; - foreach (var system in appliesTo) - { - if (Emulator.SystemId == system && Emulator.Attributes().CoreName != coreName) FlagNeedsReboot(); - Config.PreferredCores[system] = coreName; - } - } submenu.DropDownItems.AddRange(coreNames.Select(coreName => { var entry = new ToolStripMenuItem { Text = coreName }; - entry.Click += ClickHandler; + entry.Click += (_, _) => + { + string currentCoreName = Emulator.Attributes().CoreName; + if (coreName != currentCoreName && coreNames.Contains(currentCoreName)) FlagNeedsReboot(); + foreach (string system in appliesTo) + Config.PreferredCores[system] = coreName; + }; return (ToolStripItem) entry; }).ToArray()); submenu.DropDownOpened += (openedSender, _1) =>