Browse Source

ProjectChangeWatcher: slightly delay asking for solution reload after SharpDevelop receives focus; so that we skip asking when the user is closing SharpDevelop anyways.

pull/45/merge
Daniel Grunwald 12 years ago
parent
commit
8ad9dd1697
  1. 9
      src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs

9
src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs

@ -4,6 +4,7 @@ using System; @@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Threading;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Commands;
using ICSharpCode.SharpDevelop.Gui;
@ -113,7 +114,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -113,7 +114,7 @@ namespace ICSharpCode.SharpDevelop.Project
// delay reloading message a bit, prevents showing two messages
// when the file changes twice in quick succession; and prevents
// trying to reload the file while it is still being written
SD.MainThread.CallLater(TimeSpan.FromSeconds(0.5), delegate { MainFormActivated(this, EventArgs.Empty); });
SD.MainThread.CallLater(TimeSpan.FromSeconds(0.5), delegate { MainFormActivated(); });
}
}
}
@ -121,6 +122,12 @@ namespace ICSharpCode.SharpDevelop.Project @@ -121,6 +122,12 @@ namespace ICSharpCode.SharpDevelop.Project
static bool showingMessageBox;
static void MainFormActivated(object sender, EventArgs e)
{
// delay the event so that we don't interrupt the user if he's trying to close SharpDevelop
SD.MainThread.InvokeAsyncAndForget(MainFormActivated, DispatcherPriority.Background);
}
static void MainFormActivated()
{
if (wasChangedExternally && !showingMessageBox) {

Loading…
Cancel
Save