From 53dc38ee662c7890c4d8f82e0d3d210e5ece9839 Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 17 Dec 2014 03:21:32 +0000 Subject: [PATCH] ToolManager - manage IsHandleCreated and IsDisposed logic when deciding to restart a tool, still todo: a billion tools do this logic unnecessarily now --- BizHawk.Client.EmuHawk/tools/IToolForm.cs | 1 + BizHawk.Client.EmuHawk/tools/ToolManager.cs | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) 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 {