Browse Source

Corrected ProjectChangeWatcher patch.

pull/45/merge
Andreas Weizel 12 years ago
parent
commit
eda26b2a10
  1. 12
      src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs

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

@ -6,8 +6,6 @@ using System.IO;
using System.Windows.Threading; using System.Windows.Threading;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Commands;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project.Commands; using ICSharpCode.SharpDevelop.Project.Commands;
using ICSharpCode.SharpDevelop.Workbench; using ICSharpCode.SharpDevelop.Workbench;
@ -60,7 +58,7 @@ namespace ICSharpCode.SharpDevelop.Project
{ {
// Save current last write time attribute // Save current last write time attribute
FileInfo fileInfo = new FileInfo(fileName); FileInfo fileInfo = new FileInfo(fileName);
if (fileInfo != null) { if (fileInfo.Exists) {
lastWriteTime = fileInfo.LastWriteTimeUtc; lastWriteTime = fileInfo.LastWriteTimeUtc;
} }
} }
@ -69,11 +67,11 @@ namespace ICSharpCode.SharpDevelop.Project
{ {
// Save current last write time attribute // Save current last write time attribute
FileInfo fileInfo = new FileInfo(fileName); FileInfo fileInfo = new FileInfo(fileName);
if (fileInfo != null) { if (fileInfo.Exists) {
return lastWriteTime != fileInfo.LastWriteTimeUtc; return lastWriteTime != fileInfo.LastWriteTimeUtc;
} }
return true; // File doesn't exist anymore? return true; // File might have been renamed/deleted?
} }
void SetWatcher() void SetWatcher()
@ -129,8 +127,8 @@ namespace ICSharpCode.SharpDevelop.Project
void OnFileChangedEvent(object sender, FileSystemEventArgs e) void OnFileChangedEvent(object sender, FileSystemEventArgs e)
{ {
// Last write time really has changed? // Ignore this event, if LastWriteTime has changed to same value as before (= no real change in file)
if (!LastWriteTimeHasChanged()) { if ((e.ChangeType == WatcherChangeTypes.Changed) && !LastWriteTimeHasChanged()) {
LoggingService.DebugFormatted("Attributes of project file {0} have been set externally ({1}), but no relevant changes detected.", e.Name, e.ChangeType); LoggingService.DebugFormatted("Attributes of project file {0} have been set externally ({1}), but no relevant changes detected.", e.Name, e.ChangeType);
return; return;
} }

Loading…
Cancel
Save