diff --git a/BizHawk.Client.EmuHawk/tools/IToolForm.cs b/BizHawk.Client.EmuHawk/tools/IToolForm.cs index ca630b8a50..faa16bbb87 100644 --- a/BizHawk.Client.EmuHawk/tools/IToolForm.cs +++ b/BizHawk.Client.EmuHawk/tools/IToolForm.cs @@ -44,6 +44,7 @@ namespace BizHawk.Client.EmuHawk void Show(); void Close(); bool IsDisposed { get; } + bool IsHandleCreated { get; } } [AttributeUsage(AttributeTargets.Property)] diff --git a/BizHawk.Client.EmuHawk/tools/ToolManager.cs b/BizHawk.Client.EmuHawk/tools/ToolManager.cs index 92f346fdba..e237e6392a 100644 --- a/BizHawk.Client.EmuHawk/tools/ToolManager.cs +++ b/BizHawk.Client.EmuHawk/tools/ToolManager.cs @@ -201,7 +201,10 @@ namespace BizHawk.Client.EmuHawk if (IsAvailable(tool.GetType())) { UpdateServices(tool); - tool.Restart(); + if ((tool.IsHandleCreated && !tool.IsDisposed) || tool is RamWatch) // Hack for Ram Watch - in display watches mode it wants to keep running even closed, it will handle disposed logic + { + tool.Restart(); + } } else {