diff --git a/ShareX.HelpersLib/Forms/DebugForm.cs b/ShareX.HelpersLib/Forms/DebugForm.cs index 5b419f029..814bdd3e6 100644 --- a/ShareX.HelpersLib/Forms/DebugForm.cs +++ b/ShareX.HelpersLib/Forms/DebugForm.cs @@ -33,9 +33,11 @@ namespace ShareX.HelpersLib { public partial class DebugForm : Form { + private static DebugForm instance; + public Logger Logger { get; private set; } - public DebugForm(Logger logger) + private DebugForm(Logger logger) { InitializeComponent(); Icon = ShareXResources.Icon; @@ -54,6 +56,16 @@ public DebugForm(Logger logger) FormClosing += (sender, e) => Logger.MessageAdded -= logger_MessageAdded; } + public static DebugForm GetFormInstance(Logger logger) + { + if (instance == null || instance.IsDisposed) + { + instance = new DebugForm(logger); + } + + return instance; + } + private void logger_MessageAdded(string message) { this.InvokeSafe(() => AppendMessage(message)); @@ -65,7 +77,7 @@ private void AppendMessage(string message) { int start = rtbDebug.SelectionStart; int len = rtbDebug.SelectionLength; - rtbDebug.AppendText(message + Environment.NewLine); + rtbDebug.AppendText(message); if (len > 0) { rtbDebug.Select(start, len); @@ -97,7 +109,7 @@ private void btnLoadedAssemblies_Click(object sender, EventArgs e) } string assemblies = sb.ToString().Trim(); - AppendMessage("Loaded assemblies:\r\n" + assemblies); + DebugHelper.WriteLine($"Loaded assemblies:\r\n{assemblies}"); } private void rtbDebug_LinkClicked(object sender, LinkClickedEventArgs e) diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index 258cfd7e0..f4071664d 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -1585,7 +1585,7 @@ private void tsbImageHistory_Click(object sender, EventArgs e) private void tsmiShowDebugLog_Click(object sender, EventArgs e) { - new DebugForm(DebugHelper.Logger).Show(); + DebugForm.GetFormInstance(DebugHelper.Logger).ForceActivate(); } private void tsmiTestImageUpload_Click(object sender, EventArgs e)