Fix core reboot flag on preference change

This now checks core names instead of system ids
This commit is contained in:
Morilli 2024-07-02 02:14:07 +02:00
parent 2534c9288e
commit 04e9bf054e
1 changed files with 7 additions and 10 deletions

View File

@ -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) =>