From c1ba930e6442c8afe721013366b0e79aa1bdfea3 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sat, 16 Nov 2019 12:01:43 -0600 Subject: [PATCH] Lua Console - fix double click toggle and unify logic between double click and toggle menu items --- .../tools/Lua/LuaConsole.cs | 68 ++++++++++--------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs index 5c93bdfb51..cda0bd0061 100644 --- a/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs +++ b/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs @@ -322,7 +322,6 @@ namespace BizHawk.Client.EmuHawk private void UpdateDialog() { LuaListView.RowCount = LuaImp.ScriptList.Count; - LuaListView.Refresh(); UpdateNumberOfScripts(); UpdateRegisteredFunctionsDialog(); } @@ -854,38 +853,15 @@ namespace BizHawk.Client.EmuHawk private void ToggleScriptMenuItem_Click(object sender, EventArgs e) { - var files = !SelectedFiles.Any() && Global.Config.ToggleAllIfNoneSelected ? LuaImp.ScriptList : SelectedFiles; + var files = !SelectedFiles.Any() && Global.Config.ToggleAllIfNoneSelected + ? LuaImp.ScriptList + : SelectedFiles; foreach (var file in files) { - file.Toggle(); - - if (file.Enabled && file.Thread == null) - { - EnableLuaFile(file); - } - else if (!file.Enabled && file.Thread != null) - { - LuaImp.CallExitEvent(file); - - foreach (var selectedItem in SelectedItems) - { - var temp = selectedItem; - LuaImp.RegisteredFunctions.RemoveAll(lf => lf.Lua == temp.Thread); - UpdateRegisteredFunctionsDialog(); - } - - LuaImp.CallExitEvent(file); - file.Stop(); - if (Global.Config.RemoveRegisteredFunctionsOnToggle) - { - LuaImp.RegisteredFunctions.ClearAll(); - } - } + ToggleLuaScript(file); } UpdateDialog(); - UpdateNumberOfScripts(); - LuaListView.Refresh(); } private void EnableLuaFile(LuaFile item) @@ -1467,10 +1443,40 @@ namespace BizHawk.Client.EmuHawk if (index < LuaImp.ScriptList.Count) { var file = LuaImp.ScriptList[index.Value]; - if (!file.IsSeparator) + ToggleLuaScript(file); + UpdateDialog(); + } + } + + private void ToggleLuaScript(LuaFile file) + { + if (file.IsSeparator) + { + return; + } + + file.Toggle(); + + if (file.Enabled && file.Thread == null) + { + EnableLuaFile(file); + } + else if (!file.Enabled && file.Thread != null) + { + LuaImp.CallExitEvent(file); + + foreach (var selectedItem in SelectedItems) { - file.Toggle(); - UpdateDialog(); + var temp = selectedItem; + LuaImp.RegisteredFunctions.RemoveAll(lf => lf.Lua == temp.Thread); + UpdateRegisteredFunctionsDialog(); + } + + LuaImp.CallExitEvent(file); + file.Stop(); + if (Global.Config.RemoveRegisteredFunctionsOnToggle) + { + LuaImp.RegisteredFunctions.ClearAll(); } } }