Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez Gual <lluis@xamarin.com>2015-04-16 21:17:50 +0300
committerLluis Sanchez Gual <lluis@xamarin.com>2015-04-16 21:17:50 +0300
commit139b6566030af3106a28286e747b38ea45b1a428 (patch)
tree19f5fe55d10505691814916bc88dccecfef30a11
parent06c3d9a60346f4313986c1b50de3f0786df65da9 (diff)
Remove unnecessary use of GuiDispatch
Most of event subscriptions don't need to be wrapped with a GuiDispatch generated delegate wrapper since the events are already dispatched in the UI thread.
-rw-r--r--main/src/addins/CBinding/Navigation/ProjectNodeBuilderExtension.cs8
-rw-r--r--main/src/addins/CBinding/Parser/TagDatabaseManager.cs5
-rw-r--r--main/src/addins/CBinding/Project/CProject.cs2
-rw-r--r--main/src/addins/CBinding/ProjectPad/ProjectPackagesFolderNodeBuilder.cs17
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackageNodeBuilder.cs11
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackagingProjectNodeBuilder.cs11
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/Package.cs1
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs1
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs76
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs12
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs2
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs11
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableBackgroundPackageActionRunner.cs2
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageCompatibilityChecker.cs2
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs2
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageCompatibilityChecker.cs2
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageManagementProgressProvider.cs4
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs9
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs51
-rw-r--r--main/src/addins/NUnit/Gui/NUnitAssemblyGroupConfigurationNodeBuilder.cs11
-rw-r--r--main/src/addins/NUnit/Gui/NUnitAssemblyGroupNodeBuilder.cs15
-rw-r--r--main/src/addins/NUnit/Gui/TestNodeBuilder.cs17
-rw-r--r--main/src/addins/NUnit/Gui/TestPad.cs10
-rw-r--r--main/src/addins/NUnit/Services/NUnitService.cs6
-rw-r--r--main/src/addins/NUnit/Services/UnitTest.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs6
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/RecentFileStorage.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/CombineNodeBuilder.cs11
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/ProjectNodeBuilder.cs17
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/SolutionNodeBuilder.cs14
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs14
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs38
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs14
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs34
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs35
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs48
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs26
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs11
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/LayoutComboBox.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MultiTaskDialogProgressMonitor.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/CommentTasksView.cs12
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/TaskStore.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/UserTasksView.cs8
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageRecentProjectsList.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs80
53 files changed, 263 insertions, 454 deletions
diff --git a/main/src/addins/CBinding/Navigation/ProjectNodeBuilderExtension.cs b/main/src/addins/CBinding/Navigation/ProjectNodeBuilderExtension.cs
index 0022146b60..dec8bf20ee 100644
--- a/main/src/addins/CBinding/Navigation/ProjectNodeBuilderExtension.cs
+++ b/main/src/addins/CBinding/Navigation/ProjectNodeBuilderExtension.cs
@@ -45,8 +45,6 @@ namespace CBinding.Navigation
{
public class ProjectNodeBuilderExtension : NodeBuilderExtension
{
- public ClassPadEventHandler finishedBuildingTreeHandler;
-
public override bool CanBuildNode (Type dataType)
{
return typeof(CProject).IsAssignableFrom (dataType);
@@ -58,14 +56,12 @@ namespace CBinding.Navigation
protected override void Initialize ()
{
- finishedBuildingTreeHandler = (ClassPadEventHandler)DispatchService.GuiDispatch (new ClassPadEventHandler (OnFinishedBuildingTree));
-
- TagDatabaseManager.Instance.FileUpdated += finishedBuildingTreeHandler;
+ TagDatabaseManager.Instance.FileUpdated += OnFinishedBuildingTree;
}
public override void Dispose ()
{
- TagDatabaseManager.Instance.FileUpdated -= finishedBuildingTreeHandler;
+ TagDatabaseManager.Instance.FileUpdated -= OnFinishedBuildingTree;
}
public static void CreatePadTree (object o)
diff --git a/main/src/addins/CBinding/Parser/TagDatabaseManager.cs b/main/src/addins/CBinding/Parser/TagDatabaseManager.cs
index c88d2c4db0..ffeb11d37e 100644
--- a/main/src/addins/CBinding/Parser/TagDatabaseManager.cs
+++ b/main/src/addins/CBinding/Parser/TagDatabaseManager.cs
@@ -455,7 +455,10 @@ namespace CBinding.Parser
/// </summary>
void OnFileUpdated (ClassPadEventArgs args)
{
- if (null != FileUpdated){ FileUpdated(args); }
+ Runtime.RunInMainThread (() => {
+ if (null != FileUpdated)
+ FileUpdated(args);
+ });
}
private class ProjectFilePair
diff --git a/main/src/addins/CBinding/Project/CProject.cs b/main/src/addins/CBinding/Project/CProject.cs
index ed2c0b139a..43aa171aca 100644
--- a/main/src/addins/CBinding/Project/CProject.cs
+++ b/main/src/addins/CBinding/Project/CProject.cs
@@ -483,11 +483,13 @@ namespace CBinding
internal void NotifyPackageRemovedFromProject (Package package)
{
+ Runtime.AssertMainThread ();
PackageRemovedFromProject (this, new ProjectPackageEventArgs (this, package));
}
internal void NotifyPackageAddedToProject (Package package)
{
+ Runtime.AssertMainThread ();
PackageAddedToProject (this, new ProjectPackageEventArgs (this, package));
}
diff --git a/main/src/addins/CBinding/ProjectPad/ProjectPackagesFolderNodeBuilder.cs b/main/src/addins/CBinding/ProjectPad/ProjectPackagesFolderNodeBuilder.cs
index 9e86d90b68..733c3b8597 100644
--- a/main/src/addins/CBinding/ProjectPad/ProjectPackagesFolderNodeBuilder.cs
+++ b/main/src/addins/CBinding/ProjectPad/ProjectPackagesFolderNodeBuilder.cs
@@ -42,9 +42,6 @@ namespace CBinding.ProjectPad
{
public class ProjectPackagesFolderNodeBuilder : TypeNodeBuilder
{
- ProjectPackageEventHandler addedHandler;
- ProjectPackageEventHandler removedHandler;
-
public override Type NodeDataType {
get { return typeof(ProjectPackageCollection); }
}
@@ -53,28 +50,22 @@ namespace CBinding.ProjectPad
{
CProject project = ((ProjectPackageCollection)dataObject).Project;
if (project == null) return;
- project.PackageAddedToProject += addedHandler;
- project.PackageRemovedFromProject += removedHandler;
+ project.PackageAddedToProject += OnAddPackage;
+ project.PackageRemovedFromProject += OnRemovePackage;
}
public override void OnNodeRemoved (object dataObject)
{
CProject project = ((ProjectPackageCollection)dataObject).Project;
if (project == null) return;
- project.PackageAddedToProject -= addedHandler;
- project.PackageRemovedFromProject -= removedHandler;
+ project.PackageAddedToProject -= OnAddPackage;
+ project.PackageRemovedFromProject -= OnRemovePackage;
}
public override Type CommandHandlerType {
get { return typeof(ProjectPackagesFolderNodeCommandHandler); }
}
- protected override void Initialize ()
- {
- addedHandler = (ProjectPackageEventHandler)DispatchService.GuiDispatch (new ProjectPackageEventHandler (OnAddPackage));
- removedHandler = (ProjectPackageEventHandler)DispatchService.GuiDispatch (new ProjectPackageEventHandler (OnRemovePackage));
- }
-
public override string GetNodeName (ITreeNavigator thisNode, object dataObject)
{
return "Packages";
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs
index 4252abf53d..22a1d5f330 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Highlighting/CSharpSyntaxMode.cs
@@ -394,7 +394,7 @@ namespace MonoDevelop.CSharp.Highlighting
static CSharpSyntaxMode ()
{
- MonoDevelop.Debugger.DebuggingService.DisableConditionalCompilation += DispatchService.GuiDispatch (new EventHandler<DocumentEventArgs> (OnDisableConditionalCompilation));
+ MonoDevelop.Debugger.DebuggingService.DisableConditionalCompilation += OnDisableConditionalCompilation;
if (IdeApp.Workspace != null) {
IdeApp.Workspace.ActiveConfigurationChanged += delegate {
foreach (var doc in IdeApp.Workbench.Documents) {
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackageNodeBuilder.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackageNodeBuilder.cs
index f721dfc27e..07ee6b9f76 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackageNodeBuilder.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackageNodeBuilder.cs
@@ -39,13 +39,6 @@ namespace MonoDevelop.Deployment.NodeBuilders
{
internal class PackageNodeBuilder: TypeNodeBuilder
{
- EventHandler configsChanged;
-
- public PackageNodeBuilder ()
- {
- configsChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnConfigurationsChanged));
- }
-
public override Type CommandHandlerType {
get { return typeof(PackageNodeCommandHandler); }
}
@@ -81,13 +74,13 @@ namespace MonoDevelop.Deployment.NodeBuilders
public override void OnNodeAdded (object dataObject)
{
Package package = dataObject as Package;
- package.Changed += configsChanged;
+ package.Changed += OnConfigurationsChanged;
}
public override void OnNodeRemoved (object dataObject)
{
Package package = dataObject as Package;
- package.Changed -= configsChanged;
+ package.Changed -= OnConfigurationsChanged;
}
public void OnConfigurationsChanged (object sender, EventArgs args)
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackagingProjectNodeBuilder.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackagingProjectNodeBuilder.cs
index 001fcccd4f..0102146c55 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackagingProjectNodeBuilder.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.NodeBuilders/PackagingProjectNodeBuilder.cs
@@ -38,13 +38,6 @@ namespace MonoDevelop.Deployment.NodeBuilders
{
internal class PackagingProjectNodeBuilder: TypeNodeBuilder
{
- EventHandler configsChanged;
-
- public PackagingProjectNodeBuilder ()
- {
- configsChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnConfigurationsChanged));
- }
-
public override Type CommandHandlerType {
get { return typeof(PackagingProjectNodeCommandHandler); }
}
@@ -86,13 +79,13 @@ namespace MonoDevelop.Deployment.NodeBuilders
public override void OnNodeAdded (object dataObject)
{
PackagingProject project = dataObject as PackagingProject;
- project.PackagesChanged += configsChanged;
+ project.PackagesChanged += OnConfigurationsChanged;
}
public override void OnNodeRemoved (object dataObject)
{
PackagingProject project = dataObject as PackagingProject;
- project.PackagesChanged -= configsChanged;
+ project.PackagesChanged -= OnConfigurationsChanged;
}
public void OnConfigurationsChanged (object sender, EventArgs args)
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/Package.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/Package.cs
index 22362fda36..13911d12a6 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/Package.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/Package.cs
@@ -70,6 +70,7 @@ namespace MonoDevelop.Deployment
void NotifyChanged ()
{
+ Runtime.AssertMainThread ();
if (Changed != null)
Changed (this, EventArgs.Empty);
}
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs
index a08d4d5d30..e04e44842f 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment/PackagingProject.cs
@@ -67,6 +67,7 @@ namespace MonoDevelop.Deployment
internal void NotifyPackagesChanged ()
{
+ AssertMainThread ();
if (PackagesChanged != null)
PackagesChanged (this, EventArgs.Empty);
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
index f468753ed1..8255d95a99 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/BreakpointPad.cs
@@ -51,11 +51,6 @@ namespace MonoDevelop.Debugger
CommandEntrySet menuSet;
TreeViewState treeState;
- EventHandler<BreakpointEventArgs> breakpointUpdatedHandler;
- EventHandler<BreakpointEventArgs> breakpointRemovedHandler;
- EventHandler<BreakpointEventArgs> breakpointAddedHandler;
- EventHandler breakpointChangedHandler;
-
enum Columns
{
Icon,
@@ -162,15 +157,10 @@ namespace MonoDevelop.Debugger
UpdateDisplay ();
- breakpointUpdatedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointUpdated);
- breakpointRemovedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointRemoved);
- breakpointAddedHandler = DispatchService.GuiDispatch<EventHandler<BreakpointEventArgs>> (OnBreakpointAdded);
- breakpointChangedHandler = DispatchService.GuiDispatch<EventHandler> (OnBreakpointChanged);
-
- breakpoints.BreakpointAdded += breakpointAddedHandler;
- breakpoints.BreakpointRemoved += breakpointRemovedHandler;
- breakpoints.Changed += breakpointChangedHandler;
- breakpoints.BreakpointUpdated += breakpointUpdatedHandler;
+ breakpoints.BreakpointAdded += OnBreakpointAdded;
+ breakpoints.BreakpointRemoved += OnBreakpointRemoved;
+ breakpoints.Changed += OnBreakpointChanged;
+ breakpoints.BreakpointUpdated += OnBreakpointUpdated;
DebuggingService.PausedEvent += OnDebuggerStatusCheck;
DebuggingService.ResumedEvent += OnDebuggerStatusCheck;
@@ -185,10 +175,10 @@ namespace MonoDevelop.Debugger
public void Dispose ()
{
- breakpoints.BreakpointAdded -= breakpointAddedHandler;
- breakpoints.BreakpointRemoved -= breakpointRemovedHandler;
- breakpoints.Changed -= breakpointChangedHandler;
- breakpoints.BreakpointUpdated -= breakpointUpdatedHandler;
+ breakpoints.BreakpointAdded -= OnBreakpointAdded;
+ breakpoints.BreakpointRemoved -= OnBreakpointRemoved;
+ breakpoints.Changed -= OnBreakpointChanged;
+ breakpoints.BreakpointUpdated -= OnBreakpointUpdated;
DebuggingService.PausedEvent -= OnDebuggerStatusCheck;
DebuggingService.ResumedEvent -= OnDebuggerStatusCheck;
@@ -226,7 +216,7 @@ namespace MonoDevelop.Debugger
[CommandHandler (DebugCommands.EnableDisableBreakpoint)]
protected void OnEnableDisable ()
{
- breakpoints.Changed -= breakpointChangedHandler;
+ breakpoints.Changed -= OnBreakpointChanged;
try {
bool enable = false;
@@ -258,7 +248,7 @@ namespace MonoDevelop.Debugger
store.SetValue (iter, (int) Columns.Selected, enable);
}
} finally {
- breakpoints.Changed += breakpointChangedHandler;
+ breakpoints.Changed += OnBreakpointChanged;
}
}
@@ -282,7 +272,7 @@ namespace MonoDevelop.Debugger
{
bool deleted = false;
- breakpoints.BreakpointRemoved -= breakpointRemovedHandler;
+ breakpoints.BreakpointRemoved -= OnBreakpointRemoved;
try {
// Note: since we'll be modifying the list of breakpoints, we need to sort
@@ -302,7 +292,7 @@ namespace MonoDevelop.Debugger
deleted = true;
}
} finally {
- breakpoints.BreakpointRemoved += breakpointRemovedHandler;
+ breakpoints.BreakpointRemoved += OnBreakpointRemoved;
}
return deleted;
@@ -369,7 +359,7 @@ namespace MonoDevelop.Debugger
void ItemToggled (object o, ToggledArgs args)
{
- breakpoints.Changed -= breakpointChangedHandler;
+ breakpoints.Changed -= OnBreakpointChanged;
try {
TreeIter iter;
@@ -382,7 +372,7 @@ namespace MonoDevelop.Debugger
store.SetValue (iter, (int) Columns.Selected, bp.Enabled);
}
} finally {
- breakpoints.Changed += breakpointChangedHandler;
+ breakpoints.Changed += OnBreakpointChanged;
}
}
@@ -428,36 +418,38 @@ namespace MonoDevelop.Debugger
void OnBreakpointUpdated (object s, BreakpointEventArgs args)
{
- TreeIter it;
-
- if (!store.GetIterFirst (out it))
- return;
-
- do {
- var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint);
- if (bp == args.Breakpoint) {
- string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : "";
- string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : "";
- store.SetValue (it, (int) Columns.HitCount, hitCount);
- store.SetValue (it, (int) Columns.LastTrace, traceVal);
- break;
- }
- } while (store.IterNext (ref it));
+ Runtime.RunInMainThread (() => {
+ TreeIter it;
+
+ if (!store.GetIterFirst (out it))
+ return;
+
+ do {
+ var bp = (BreakEvent) store.GetValue (it, (int) Columns.Breakpoint);
+ if (bp == args.Breakpoint) {
+ string hitCount = bp.HitCountMode != HitCountMode.None ? bp.CurrentHitCount.ToString () : "";
+ string traceVal = (bp.HitAction & HitAction.PrintExpression) != HitAction.None ? bp.LastTraceValue : "";
+ store.SetValue (it, (int) Columns.HitCount, hitCount);
+ store.SetValue (it, (int) Columns.LastTrace, traceVal);
+ break;
+ }
+ } while (store.IterNext (ref it));
+ });
}
protected void OnBreakpointAdded (object o, EventArgs args)
{
- UpdateDisplay ();
+ Runtime.RunInMainThread (UpdateDisplay);
}
protected void OnBreakpointRemoved (object o, EventArgs args)
{
- UpdateDisplay ();
+ Runtime.RunInMainThread (UpdateDisplay);
}
protected void OnBreakpointChanged (object o, EventArgs args)
{
- UpdateDisplay ();
+ Runtime.RunInMainThread (UpdateDisplay);
}
void OnDebuggerStatusCheck (object s, EventArgs a)
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
index 486658e944..08cf37d334 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
@@ -497,6 +497,7 @@ namespace MonoDevelop.Debugger
public static void Resume ()
{
+ Runtime.AssertMainThread ();
if (CheckIsBusy ())
return;
@@ -506,6 +507,7 @@ namespace MonoDevelop.Debugger
public static void RunToCursor (string fileName, int line, int column)
{
+ Runtime.AssertMainThread ();
if (CheckIsBusy ())
return;
@@ -518,6 +520,7 @@ namespace MonoDevelop.Debugger
public static void SetNextStatement (string fileName, int line, int column)
{
+ Runtime.AssertMainThread ();
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -800,6 +803,7 @@ namespace MonoDevelop.Debugger
static void NotifyLocationChanged ()
{
+ Runtime.AssertMainThread ();
if (ExecutionLocationChanged != null)
ExecutionLocationChanged (null, EventArgs.Empty);
}
@@ -834,6 +838,8 @@ namespace MonoDevelop.Debugger
public static void StepInto ()
{
+ Runtime.AssertMainThread ();
+
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -843,6 +849,8 @@ namespace MonoDevelop.Debugger
public static void StepOver ()
{
+ Runtime.AssertMainThread ();
+
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -852,6 +860,8 @@ namespace MonoDevelop.Debugger
public static void StepOut ()
{
+ Runtime.AssertMainThread ();
+
if (!IsDebugging || IsRunning || CheckIsBusy ())
return;
@@ -941,6 +951,7 @@ namespace MonoDevelop.Debugger
public static void ShowCurrentExecutionLine ()
{
+ Runtime.AssertMainThread ();
if (currentBacktrace != null) {
var sf = GetCurrentVisibleFrame ();
if (sf != null && !string.IsNullOrEmpty (sf.SourceLocation.FileName) && System.IO.File.Exists (sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1) {
@@ -952,6 +963,7 @@ namespace MonoDevelop.Debugger
public static void ShowNextStatement ()
{
+ Runtime.AssertMainThread ();
var location = NextStatementLocation;
if (location != null && System.IO.File.Exists (location.FileName)) {
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs
index 19591c794b..e14826584a 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs
@@ -114,7 +114,7 @@ namespace MonoDevelop.GtkCore.GuiBuilder
if (System.IO.File.Exists (fileName)) {
watcher.Path = Path.GetDirectoryName (fileName);
watcher.Filter = Path.GetFileName (fileName);
- watcher.Changed += (FileSystemEventHandler) DispatchService.GuiDispatch (new FileSystemEventHandler (OnSteticFileChanged));
+ watcher.Changed += DispatchService.GuiDispatchDelegate (new FileSystemEventHandler (OnSteticFileChanged));
watcher.EnableRaisingEvents = true;
}
}
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs
index b06919dae1..46f6f0f461 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.NodeBuilders/WindowsFolderNodeBuilder.cs
@@ -39,13 +39,6 @@ namespace MonoDevelop.GtkCore.NodeBuilders
{
public class WindowsFolderNodeBuilder: TypeNodeBuilder
{
- EventHandler updateDelegate;
-
- public WindowsFolderNodeBuilder ()
- {
- updateDelegate = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnUpdateFiles));
- }
-
public override Type NodeDataType {
get { return typeof(WindowsFolder); }
}
@@ -105,13 +98,13 @@ namespace MonoDevelop.GtkCore.NodeBuilders
public override void OnNodeAdded (object dataObject)
{
WindowsFolder w = (WindowsFolder) dataObject;
- w.Changed += updateDelegate;
+ w.Changed += OnUpdateFiles;
}
public override void OnNodeRemoved (object dataObject)
{
WindowsFolder w = (WindowsFolder)dataObject;
- w.Changed -= updateDelegate;
+ w.Changed -= OnUpdateFiles;
w.Dispose ();
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableBackgroundPackageActionRunner.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableBackgroundPackageActionRunner.cs
index d4b11accde..91594523de 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableBackgroundPackageActionRunner.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestableBackgroundPackageActionRunner.cs
@@ -54,7 +54,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
backgroundDispatcher = handler;
}
- protected override void GuiDispatch (MessageHandler handler)
+ protected override void GuiDispatch (Action handler)
{
handler.Invoke ();
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageCompatibilityChecker.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageCompatibilityChecker.cs
index e675032f49..afccc2de26 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageCompatibilityChecker.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests.Helpers/TestablePackageCompatibilityChecker.cs
@@ -47,7 +47,7 @@ namespace MonoDevelop.PackageManagement.Tests.Helpers
return PackageReferenceFile;
}
- protected override void GuiDispatch (MessageHandler handler)
+ protected override void GuiDispatch (Action handler)
{
handler.Invoke ();
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs
index 9e0f07b9e5..ee106102cb 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/BackgroundPackageActionRunner.cs
@@ -210,7 +210,7 @@ namespace MonoDevelop.PackageManagement
DispatchService.BackgroundDispatch (handler);
}
- protected virtual void GuiDispatch (MessageHandler handler)
+ protected virtual void GuiDispatch (Action handler)
{
DispatchService.GuiDispatch (handler);
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageCompatibilityChecker.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageCompatibilityChecker.cs
index 1252aa9018..b34dc40c00 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageCompatibilityChecker.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageCompatibilityChecker.cs
@@ -118,7 +118,7 @@ namespace MonoDevelop.PackageManagement
return packageReferences.Any (packageReference => packageReference.RequireReinstallation);
}
- protected virtual void GuiDispatch (MessageHandler handler)
+ protected virtual void GuiDispatch (Action handler)
{
DispatchService.GuiDispatch (handler);
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageManagementProgressProvider.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageManagementProgressProvider.cs
index 5ca37f109a..841e0a5944 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageManagementProgressProvider.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageManagementProgressProvider.cs
@@ -33,7 +33,7 @@ namespace MonoDevelop.PackageManagement
{
public class PackageManagementProgressProvider : IProgressProvider
{
- Action<MessageHandler> guiDispatcher;
+ Action<Action> guiDispatcher;
public PackageManagementProgressProvider (IPackageRepositoryFactoryEvents repositoryFactoryEvents)
: this (repositoryFactoryEvents, h => DispatchService.GuiDispatch (h))
@@ -42,7 +42,7 @@ namespace MonoDevelop.PackageManagement
public PackageManagementProgressProvider (
IPackageRepositoryFactoryEvents repositoryFactoryEvents,
- Action<MessageHandler> guiDispatcher)
+ Action<Action> guiDispatcher)
{
repositoryFactoryEvents.RepositoryCreated += RepositoryCreated;
this.guiDispatcher = guiDispatcher;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs
index c7703d4fad..e069c63271 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/FileRegistry.cs
@@ -52,12 +52,11 @@ namespace MonoDevelop.SourceEditor
static FileRegistry ()
{
fileSystemWatcher = new FileSystemWatcher ();
- fileSystemWatcher.Created += (FileSystemEventHandler)DispatchService.GuiDispatch (new FileSystemEventHandler (OnFileChanged));
- fileSystemWatcher.Changed += (FileSystemEventHandler)DispatchService.GuiDispatch (new FileSystemEventHandler (OnFileChanged));
+ fileSystemWatcher.Created += (s,e) => Runtime.RunInMainThread (() => OnFileChanged (s,e));
+ fileSystemWatcher.Changed += (s,e) => Runtime.RunInMainThread (() => OnFileChanged (s,e));
- var fileChanged = DispatchService.GuiDispatch (new EventHandler<FileEventArgs> (HandleFileServiceChange));
- FileService.FileCreated += fileChanged;
- FileService.FileChanged += fileChanged;
+ FileService.FileCreated += HandleFileServiceChange;
+ FileService.FileChanged += HandleFileServiceChange;
}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
index 33469789dc..305bced3be 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
@@ -72,11 +72,6 @@ namespace MonoDevelop.SourceEditor
TextLineMarker debugStackLineMarker;
int lastDebugLine = -1;
BreakpointStore breakpoints;
- EventHandler currentFrameChanged;
- EventHandler executionLocationChanged;
- EventHandler<BreakpointEventArgs> breakpointAdded;
- EventHandler<BreakpointEventArgs> breakpointRemoved;
- EventHandler<BreakpointEventArgs> breakpointStatusChanged;
List<DocumentLine> breakpointSegments = new List<DocumentLine> ();
DocumentLine debugStackSegment;
DocumentLine currentLineSegment;
@@ -185,11 +180,6 @@ namespace MonoDevelop.SourceEditor
public SourceEditorView ()
{
Counters.LoadedEditors++;
- currentFrameChanged = (EventHandler)DispatchService.GuiDispatch (new EventHandler (OnCurrentFrameChanged));
- executionLocationChanged = (EventHandler)DispatchService.GuiDispatch (new EventHandler (OnExecutionLocationChanged));
- breakpointAdded = (EventHandler<BreakpointEventArgs>)DispatchService.GuiDispatch (new EventHandler<BreakpointEventArgs> (OnBreakpointAdded));
- breakpointRemoved = (EventHandler<BreakpointEventArgs>)DispatchService.GuiDispatch (new EventHandler<BreakpointEventArgs> (OnBreakpointRemoved));
- breakpointStatusChanged = (EventHandler<BreakpointEventArgs>)DispatchService.GuiDispatch (new EventHandler<BreakpointEventArgs> (OnBreakpointStatusChanged));
widget = new SourceEditorWidget (this);
widget.TextEditor.Document.SyntaxModeChanged += HandleSyntaxModeChanged;
@@ -230,14 +220,14 @@ namespace MonoDevelop.SourceEditor
breakpoints = DebuggingService.Breakpoints;
DebuggingService.DebugSessionStarted += OnDebugSessionStarted;
- DebuggingService.ExecutionLocationChanged += executionLocationChanged;
- DebuggingService.CurrentFrameChanged += currentFrameChanged;
- DebuggingService.StoppedEvent += currentFrameChanged;
- DebuggingService.ResumedEvent += currentFrameChanged;
- breakpoints.BreakpointAdded += breakpointAdded;
- breakpoints.BreakpointRemoved += breakpointRemoved;
- breakpoints.BreakpointStatusChanged += breakpointStatusChanged;
- breakpoints.BreakpointModified += breakpointStatusChanged;
+ DebuggingService.ExecutionLocationChanged += OnExecutionLocationChanged;
+ DebuggingService.CurrentFrameChanged += OnCurrentFrameChanged;
+ DebuggingService.StoppedEvent += OnCurrentFrameChanged;
+ DebuggingService.ResumedEvent += OnCurrentFrameChanged;
+ breakpoints.BreakpointAdded += OnBreakpointAdded;
+ breakpoints.BreakpointRemoved += OnBreakpointRemoved;
+ breakpoints.BreakpointStatusChanged += OnBreakpointStatusChanged;
+ breakpoints.BreakpointModified += OnBreakpointStatusChanged;
DebuggingService.PinnedWatches.WatchAdded += OnWatchAdded;
DebuggingService.PinnedWatches.WatchRemoved += OnWatchRemoved;
DebuggingService.PinnedWatches.WatchChanged += OnWatchChanged;
@@ -1023,15 +1013,15 @@ namespace MonoDevelop.SourceEditor
TextEditorService.FileExtensionAdded -= HandleFileExtensionAdded;
TextEditorService.FileExtensionRemoved -= HandleFileExtensionRemoved;
- DebuggingService.ExecutionLocationChanged -= executionLocationChanged;
+ DebuggingService.ExecutionLocationChanged -= OnExecutionLocationChanged;
DebuggingService.DebugSessionStarted -= OnDebugSessionStarted;
- DebuggingService.CurrentFrameChanged -= currentFrameChanged;
- DebuggingService.StoppedEvent -= currentFrameChanged;
- DebuggingService.ResumedEvent -= currentFrameChanged;
- breakpoints.BreakpointAdded -= breakpointAdded;
- breakpoints.BreakpointRemoved -= breakpointRemoved;
- breakpoints.BreakpointStatusChanged -= breakpointStatusChanged;
- breakpoints.BreakpointModified -= breakpointStatusChanged;
+ DebuggingService.CurrentFrameChanged -= OnCurrentFrameChanged;
+ DebuggingService.StoppedEvent -= OnCurrentFrameChanged;
+ DebuggingService.ResumedEvent -= OnCurrentFrameChanged;
+ breakpoints.BreakpointAdded -= OnBreakpointAdded;
+ breakpoints.BreakpointRemoved -= OnBreakpointRemoved;
+ breakpoints.BreakpointStatusChanged -= OnBreakpointStatusChanged;
+ breakpoints.BreakpointModified -= OnBreakpointStatusChanged;
DebuggingService.PinnedWatches.WatchAdded -= OnWatchAdded;
DebuggingService.PinnedWatches.WatchRemoved -= OnWatchRemoved;
DebuggingService.PinnedWatches.WatchChanged -= OnWatchChanged;
@@ -1046,12 +1036,6 @@ namespace MonoDevelop.SourceEditor
debugStackLineMarker = null;
currentDebugLineMarker = null;
- executionLocationChanged = null;
- currentFrameChanged = null;
- breakpointAdded = null;
- breakpointRemoved = null;
- breakpointStatusChanged = null;
-
if (ownerDocument != null) {
ownerDocument.DocumentParsed -= HandleDocumentParsed;
ownerDocument = null;
@@ -1384,6 +1368,7 @@ namespace MonoDevelop.SourceEditor
// Updated with a delay, to make sure it works when called as a
// result of inserting/removing lines before a breakpoint position
GLib.Timeout.Add (10, delegate {
+ // Make sure this runs in the UI thread.
if (!isDisposed)
UpdateBreakpoints ();
return false;
@@ -1397,6 +1382,7 @@ namespace MonoDevelop.SourceEditor
// Updated with a delay, to make sure it works when called as a
// result of inserting/removing lines before a breakpoint position
GLib.Timeout.Add (10, delegate {
+ // Make sure this runs in the UI thread.
if (!isDisposed)
UpdateBreakpoints ();
return false;
@@ -1410,6 +1396,7 @@ namespace MonoDevelop.SourceEditor
// Updated with a delay, to make sure it works when called as a
// result of inserting/removing lines before a breakpoint position
GLib.Timeout.Add (10, delegate {
+ // Make sure this runs in the UI thread.
if (!isDisposed)
UpdateBreakpoints (true);
return false;
diff --git a/main/src/addins/NUnit/Gui/NUnitAssemblyGroupConfigurationNodeBuilder.cs b/main/src/addins/NUnit/Gui/NUnitAssemblyGroupConfigurationNodeBuilder.cs
index bea7c43faa..c47955eb17 100644
--- a/main/src/addins/NUnit/Gui/NUnitAssemblyGroupConfigurationNodeBuilder.cs
+++ b/main/src/addins/NUnit/Gui/NUnitAssemblyGroupConfigurationNodeBuilder.cs
@@ -41,13 +41,6 @@ namespace MonoDevelop.NUnit
{
public class NUnitAssemblyGroupConfigurationNodeBuilder: TypeNodeBuilder
{
- EventHandler assembliesChanged;
-
- public NUnitAssemblyGroupConfigurationNodeBuilder ()
- {
- assembliesChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnAssembliesChanged));
- }
-
public override Type CommandHandlerType {
get { return typeof(NUnitAssemblyGroupConfigurationNodeCommandHandler); }
}
@@ -89,13 +82,13 @@ namespace MonoDevelop.NUnit
public override void OnNodeAdded (object dataObject)
{
var config = (NUnitAssemblyGroupProjectConfiguration) dataObject;
- config.AssembliesChanged += assembliesChanged;
+ config.AssembliesChanged += OnAssembliesChanged;
}
public override void OnNodeRemoved (object dataObject)
{
var config = (NUnitAssemblyGroupProjectConfiguration) dataObject;
- config.AssembliesChanged -= assembliesChanged;
+ config.AssembliesChanged -= OnAssembliesChanged;
}
public void OnAssembliesChanged (object sender, EventArgs args)
diff --git a/main/src/addins/NUnit/Gui/NUnitAssemblyGroupNodeBuilder.cs b/main/src/addins/NUnit/Gui/NUnitAssemblyGroupNodeBuilder.cs
index 2cc8a48c5e..65d9060c92 100644
--- a/main/src/addins/NUnit/Gui/NUnitAssemblyGroupNodeBuilder.cs
+++ b/main/src/addins/NUnit/Gui/NUnitAssemblyGroupNodeBuilder.cs
@@ -39,13 +39,6 @@ namespace MonoDevelop.NUnit
{
public class NUnitAssemblyGroupNodeBuilder: TypeNodeBuilder
{
- ConfigurationEventHandler configsChanged;
-
- public NUnitAssemblyGroupNodeBuilder ()
- {
- configsChanged = (ConfigurationEventHandler) DispatchService.GuiDispatch (new ConfigurationEventHandler (OnConfigurationsChanged));
- }
-
public override Type CommandHandlerType {
get { return typeof(NUnitAssemblyGroupNodeCommandHandler); }
}
@@ -87,15 +80,15 @@ namespace MonoDevelop.NUnit
public override void OnNodeAdded (object dataObject)
{
NUnitAssemblyGroupProject project = dataObject as NUnitAssemblyGroupProject;
- project.ConfigurationAdded += configsChanged;
- project.ConfigurationRemoved += configsChanged;
+ project.ConfigurationAdded += OnConfigurationsChanged;
+ project.ConfigurationRemoved += OnConfigurationsChanged;
}
public override void OnNodeRemoved (object dataObject)
{
NUnitAssemblyGroupProject project = dataObject as NUnitAssemblyGroupProject;
- project.ConfigurationAdded -= configsChanged;
- project.ConfigurationRemoved -= configsChanged;
+ project.ConfigurationAdded -= OnConfigurationsChanged;
+ project.ConfigurationRemoved -= OnConfigurationsChanged;
}
public void OnConfigurationsChanged (object sender, ConfigurationEventArgs args)
diff --git a/main/src/addins/NUnit/Gui/TestNodeBuilder.cs b/main/src/addins/NUnit/Gui/TestNodeBuilder.cs
index 7166e6b610..87f25d966f 100644
--- a/main/src/addins/NUnit/Gui/TestNodeBuilder.cs
+++ b/main/src/addins/NUnit/Gui/TestNodeBuilder.cs
@@ -39,15 +39,6 @@ namespace MonoDevelop.NUnit
{
public class TestNodeBuilder: TypeNodeBuilder
{
- EventHandler testChanged;
- EventHandler testStatusChanged;
-
- public TestNodeBuilder ()
- {
- testChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnTestChanged));
- testStatusChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnTestStatusChanged));
- }
-
public override Type CommandHandlerType {
get { return typeof(TestNodeCommandHandler); }
}
@@ -117,15 +108,15 @@ namespace MonoDevelop.NUnit
public override void OnNodeAdded (object dataObject)
{
UnitTest test = (UnitTest) dataObject;
- test.TestChanged += testChanged;
- test.TestStatusChanged += testStatusChanged;
+ test.TestChanged += OnTestChanged;
+ test.TestStatusChanged += OnTestStatusChanged;
}
public override void OnNodeRemoved (object dataObject)
{
UnitTest test = (UnitTest) dataObject;
- test.TestChanged -= testChanged;
- test.TestStatusChanged -= testStatusChanged;
+ test.TestChanged -= OnTestChanged;
+ test.TestStatusChanged -= OnTestStatusChanged;
}
public void OnTestChanged (object sender, EventArgs args)
diff --git a/main/src/addins/NUnit/Gui/TestPad.cs b/main/src/addins/NUnit/Gui/TestPad.cs
index 4587d9dffa..96b5f929bb 100644
--- a/main/src/addins/NUnit/Gui/TestPad.cs
+++ b/main/src/addins/NUnit/Gui/TestPad.cs
@@ -76,7 +76,6 @@ namespace MonoDevelop.NUnit
int TestResultPage;
int TestOutputPage;
- EventHandler testChangedHandler;
VBox detailsPad;
ArrayList testNavigationHistory = new ArrayList ();
@@ -87,8 +86,7 @@ namespace MonoDevelop.NUnit
{
base.Initialize (builders, options, menuPath);
- testChangedHandler = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnDetailsTestChanged));
- testService.TestSuiteChanged += (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnTestSuiteChanged));
+ testService.TestSuiteChanged += OnTestSuiteChanged;
paned = new VPaned ();
VBox vbox = new VBox ();
@@ -563,7 +561,7 @@ namespace MonoDevelop.NUnit
detailLabel.Markup = "";
detailsStore.Clear ();
if (detailsTest != null)
- detailsTest.TestChanged -= testChangedHandler;
+ detailsTest.TestChanged -= OnDetailsTestChanged;
detailsTest = null;
detailsDate = DateTime.MinValue;
detailsReferenceDate = DateTime.MinValue;
@@ -584,7 +582,7 @@ namespace MonoDevelop.NUnit
detailsPad.Sensitive = true;
if (detailsTest != null)
- detailsTest.TestChanged -= testChangedHandler;
+ detailsTest.TestChanged -= OnDetailsTestChanged;
if (detailsTest != test) {
detailsTest = test;
@@ -594,7 +592,7 @@ namespace MonoDevelop.NUnit
if (testNavigationHistory.Count > 50)
testNavigationHistory.RemoveAt (0);
}
- detailsTest.TestChanged += testChangedHandler;
+ detailsTest.TestChanged += OnDetailsTestChanged;
if (test is UnitTestGroup) {
infoBook.HidePage (TestResultPage);
diff --git a/main/src/addins/NUnit/Services/NUnitService.cs b/main/src/addins/NUnit/Services/NUnitService.cs
index dbee63fb48..2ecd85412b 100644
--- a/main/src/addins/NUnit/Services/NUnitService.cs
+++ b/main/src/addins/NUnit/Services/NUnitService.cs
@@ -313,8 +313,10 @@ namespace MonoDevelop.NUnit
void NotifyTestSuiteChanged ()
{
- if (TestSuiteChanged != null)
- TestSuiteChanged (this, EventArgs.Empty);
+ Runtime.RunInMainThread (() => {
+ if (TestSuiteChanged != null)
+ TestSuiteChanged (this, EventArgs.Empty);
+ });
}
public static void ResetResult (UnitTest test)
diff --git a/main/src/addins/NUnit/Services/UnitTest.cs b/main/src/addins/NUnit/Services/UnitTest.cs
index 4ece0ab11d..b7761d6289 100644
--- a/main/src/addins/NUnit/Services/UnitTest.cs
+++ b/main/src/addins/NUnit/Services/UnitTest.cs
@@ -393,6 +393,7 @@ namespace MonoDevelop.NUnit
protected virtual void OnTestChanged ()
{
Gtk.Application.Invoke (delegate {
+ // Run asynchronously in the UI thread
if (TestChanged != null)
TestChanged (this, EventArgs.Empty);
});
@@ -401,6 +402,7 @@ namespace MonoDevelop.NUnit
protected virtual void OnTestStatusChanged ()
{
Gtk.Application.Invoke (delegate {
+ // Run asynchronously in the UI thread
if (TestStatusChanged != null)
TestStatusChanged (this, EventArgs.Empty);
});
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs
index 282b03f585..6968728bd6 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/PropertyService.cs
@@ -168,8 +168,10 @@ namespace MonoDevelop.Core
UserDataMigrationService.SetMigrationSource (migratableProfile, migrateVersion);
properties.PropertyChanged += delegate(object sender, PropertyChangedEventArgs args) {
- if (PropertyChanged != null)
- PropertyChanged (sender, args);
+ Runtime.RunInMainThread (() => {
+ if (PropertyChanged != null)
+ PropertyChanged (sender, args);
+ });
};
Counters.PropertyServiceInitialization.EndTiming ();
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs
index c7229fe649..2e4e1dbad9 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs
@@ -1188,6 +1188,7 @@ namespace MonoDevelop.Projects
protected virtual void OnConfigurationAdded (ConfigurationEventArgs args)
{
+ AssertMainThread ();
ItemExtension.OnConfigurationAdded (args);
}
@@ -1199,6 +1200,7 @@ namespace MonoDevelop.Projects
protected virtual void OnConfigurationRemoved (ConfigurationEventArgs args)
{
+ AssertMainThread ();
ItemExtension.OnConfigurationRemoved (args);
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
index 0d9f407a3d..123893630e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
@@ -95,7 +95,7 @@ namespace MonoDevelop.Components.MainToolbar
UpdateSearchEntryLabel ();
};
- executionTargetsChanged = DispatchService.GuiDispatch (new EventHandler ((sender, e) => UpdateCombos ()));
+ executionTargetsChanged = (sender, e) => UpdateCombos ();
IdeApp.Workspace.LastWorkspaceItemClosed += (sender, e) => StatusBar.ShowReady ();
IdeApp.Workspace.ActiveConfigurationChanged += (sender, e) => UpdateCombos ();
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/RecentFileStorage.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/RecentFileStorage.cs
index 362c9cb2ec..a2f3db5129 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/RecentFileStorage.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/RecentFileStorage.cs
@@ -296,9 +296,10 @@ namespace MonoDevelop.Ide.Desktop
void OnRecentFilesChanged (List<RecentItem> cachedItemList)
{
this.cachedItemList = cachedItemList;
- if (changed != null) {
- changed (this, EventArgs.Empty);
- }
+ Runtime.RunInMainThread (() => {
+ if (changed != null)
+ changed (this, EventArgs.Empty);
+ });
}
EventHandler changed;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/CombineNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/CombineNodeBuilder.cs
index 59cb4ab063..5e76a6bed5 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/CombineNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/CombineNodeBuilder.cs
@@ -37,13 +37,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ClassPad
{
public class CombineNodeBuilder: TypeNodeBuilder
{
- SolutionItemRenamedEventHandler combineNameChanged;
-
- public CombineNodeBuilder ()
- {
- combineNameChanged = (SolutionItemRenamedEventHandler) DispatchService.GuiDispatch (new SolutionItemRenamedEventHandler (OnCombineRenamed));
- }
-
public override Type NodeDataType {
get { return typeof(SolutionFolder); }
}
@@ -102,13 +95,13 @@ namespace MonoDevelop.Ide.Gui.Pads.ClassPad
public override void OnNodeAdded (object dataObject)
{
SolutionFolder combine = (SolutionFolder) dataObject;
- combine.NameChanged += combineNameChanged;
+ combine.NameChanged += OnCombineRenamed;
}
public override void OnNodeRemoved (object dataObject)
{
SolutionFolder combine = (SolutionFolder) dataObject;
- combine.NameChanged -= combineNameChanged;
+ combine.NameChanged -= OnCombineRenamed;
}
void OnCombineRenamed (object sender, SolutionItemRenamedEventArgs e)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/ProjectNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/ProjectNodeBuilder.cs
index 76e634c035..ad71ba09d4 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/ProjectNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/ProjectNodeBuilder.cs
@@ -43,23 +43,14 @@ namespace MonoDevelop.Ide.Gui.Pads.ClassPad
{
public class ProjectNodeBuilder: TypeNodeBuilder
{
- SolutionItemRenamedEventHandler projectNameChanged;
-
- public ProjectNodeBuilder ()
- {
- projectNameChanged = (SolutionItemRenamedEventHandler) DispatchService.GuiDispatch (new SolutionItemRenamedEventHandler (OnProjectRenamed));
- }
-
-// EventHandler<TypeUpdateInformationEventArgs> compilationUnitUpdated;
protected override void Initialize ()
{
-// compilationUnitUpdated = (EventHandler<TypeUpdateInformationEventArgs>) DispatchService.GuiDispatch (new EventHandler<TypeUpdateInformationEventArgs> (OnClassInformationChanged));
-// TypeSystemService.TypesUpdated += compilationUnitUpdated;
+// TypeSystemService.TypesUpdated += OnClassInformationChanged;
}
public override void Dispose ()
{
-// TypeSystemService.TypesUpdated -= compilationUnitUpdated;
+// TypeSystemService.TypesUpdated -= OnClassInformationChanged;
}
public override Type NodeDataType {
@@ -73,13 +64,13 @@ namespace MonoDevelop.Ide.Gui.Pads.ClassPad
public override void OnNodeAdded (object dataObject)
{
Project project = (Project) dataObject;
- project.NameChanged += projectNameChanged;
+ project.NameChanged += OnProjectRenamed;
}
public override void OnNodeRemoved (object dataObject)
{
Project project = (Project) dataObject;
- project.NameChanged -= projectNameChanged;
+ project.NameChanged -= OnProjectRenamed;
}
public override string GetNodeName (ITreeNavigator thisNode, object dataObject)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/SolutionNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/SolutionNodeBuilder.cs
index d9a348c425..dafa16a10f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/SolutionNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ClassPad/SolutionNodeBuilder.cs
@@ -41,14 +41,8 @@ namespace MonoDevelop.Ide.Gui.Pads.ClassPad
{
public class SolutionNodeBuilder: TypeNodeBuilder
{
- EventHandler<WorkspaceItemRenamedEventArgs> combineNameChanged;
- EventHandler startupChanged;
-
public SolutionNodeBuilder ()
{
- combineNameChanged = (EventHandler<WorkspaceItemRenamedEventArgs>) DispatchService.GuiDispatch (new EventHandler<WorkspaceItemRenamedEventArgs> (OnCombineRenamed));
- startupChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnStartupChanged));
-
IdeApp.Workspace.ItemAddedToSolution += OnEntryAdded;
IdeApp.Workspace.ItemRemovedFromSolution += OnEntryRemoved;
}
@@ -121,15 +115,15 @@ namespace MonoDevelop.Ide.Gui.Pads.ClassPad
public override void OnNodeAdded (object dataObject)
{
Solution solution = (Solution) dataObject;
- solution.NameChanged += combineNameChanged;
- solution.StartupItemChanged += startupChanged;
+ solution.NameChanged += OnCombineRenamed;
+ solution.StartupItemChanged += OnStartupChanged;
}
public override void OnNodeRemoved (object dataObject)
{
Solution solution = (Solution) dataObject;
- solution.NameChanged -= combineNameChanged;
- solution.StartupItemChanged -= startupChanged;
+ solution.NameChanged -= OnCombineRenamed;
+ solution.StartupItemChanged -= OnStartupChanged;
}
void OnStartupChanged (object sender, EventArgs args)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs
index 934f2dd923..187eb0619d 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolder.cs
@@ -61,9 +61,9 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
if (trackChanges != value) {
trackChanges = value;
if (trackChanges)
- FileService.FileRenamed += new EventHandler<FileCopyEventArgs> (OnFileRenamed);
+ FileService.FileRenamed += OnFileRenamed;
else
- FileService.FileRenamed -= new EventHandler<FileCopyEventArgs> (OnFileRenamed);
+ FileService.FileRenamed -= OnFileRenamed;
}
}
}
@@ -119,7 +119,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public void Dispose ()
{
- FileService.FileRenamed -= new EventHandler<FileCopyEventArgs> (OnFileRenamed);
+ FileService.FileRenamed -= OnFileRenamed;
}
public void Remove ()
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
index 0e70539c61..69ba9689d0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
@@ -47,9 +47,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
Xwt.Drawing.Image folderOpenIcon;
Xwt.Drawing.Image folderClosedIcon;
- EventHandler<FileCopyEventArgs> fileRenamedHandler;
- EventHandler<FileEventArgs> fileRemovedHandler;
-
public override Type NodeDataType {
get { return typeof(ProjectFolder); }
}
@@ -74,17 +71,14 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
folderOpenIcon = Context.GetIcon (Stock.OpenFolder);
folderClosedIcon = Context.GetIcon (Stock.ClosedFolder);
-
- fileRenamedHandler = DispatchService.GuiDispatch<EventHandler<FileCopyEventArgs>> (OnFolderRenamed);
- fileRemovedHandler = DispatchService.GuiDispatch<EventHandler<FileEventArgs>> (OnFolderRemoved);
}
public override void OnNodeAdded (object dataObject)
{
base.OnNodeAdded (dataObject);
ProjectFolder folder = (ProjectFolder) dataObject;
- folder.FolderRenamed += fileRenamedHandler;
- folder.FolderRemoved += fileRemovedHandler;
+ folder.FolderRenamed += OnFolderRenamed;
+ folder.FolderRemoved += OnFolderRemoved;
folder.TrackChanges = true;
}
@@ -92,8 +86,8 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
base.OnNodeRemoved (dataObject);
ProjectFolder folder = (ProjectFolder) dataObject;
- folder.FolderRenamed -= fileRenamedHandler;
- folder.FolderRemoved -= fileRemovedHandler;
+ folder.FolderRenamed -= OnFolderRenamed;
+ folder.FolderRemoved -= OnFolderRemoved;
folder.Dispose ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs
index c1f48c7aa1..8578ab3ec6 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs
@@ -45,13 +45,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
class ProjectNodeBuilder: FolderNodeBuilder
{
- ProjectFileEventHandler fileAddedHandler;
- ProjectFileEventHandler fileRemovedHandler;
- ProjectFileRenamedEventHandler fileRenamedHandler;
- ProjectFileEventHandler filePropertyChangedHandler;
- SolutionItemModifiedEventHandler projectChanged;
- EventHandler<FileEventArgs> deletedHandler;
-
public override Type NodeDataType {
get { return typeof(Project); }
}
@@ -62,43 +55,36 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
protected override void Initialize ()
{
- fileAddedHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (OnAddFile));
- fileRemovedHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (OnRemoveFile));
- filePropertyChangedHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (OnFilePropertyChanged));
- fileRenamedHandler = (ProjectFileRenamedEventHandler) DispatchService.GuiDispatch (new ProjectFileRenamedEventHandler (OnRenameFile));
- projectChanged = (SolutionItemModifiedEventHandler) DispatchService.GuiDispatch (new SolutionItemModifiedEventHandler (OnProjectModified));
- deletedHandler = (EventHandler<FileEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileEventArgs> (OnSystemFileDeleted));
-
- IdeApp.Workspace.FileAddedToProject += fileAddedHandler;
- IdeApp.Workspace.FileRemovedFromProject += fileRemovedHandler;
- IdeApp.Workspace.FileRenamedInProject += fileRenamedHandler;
- IdeApp.Workspace.FilePropertyChangedInProject += filePropertyChangedHandler;
+ IdeApp.Workspace.FileAddedToProject += OnAddFile;
+ IdeApp.Workspace.FileRemovedFromProject += OnRemoveFile;
+ IdeApp.Workspace.FileRenamedInProject += OnRenameFile;
+ IdeApp.Workspace.FilePropertyChangedInProject += OnFilePropertyChanged;
IdeApp.Workspace.ActiveConfigurationChanged += IdeAppWorkspaceActiveConfigurationChanged;
- FileService.FileRemoved += deletedHandler;
+ FileService.FileRemoved += OnSystemFileDeleted;
}
public override void Dispose ()
{
- IdeApp.Workspace.FileAddedToProject -= fileAddedHandler;
- IdeApp.Workspace.FileRemovedFromProject -= fileRemovedHandler;
- IdeApp.Workspace.FileRenamedInProject -= fileRenamedHandler;
- IdeApp.Workspace.FilePropertyChangedInProject -= filePropertyChangedHandler;
+ IdeApp.Workspace.FileAddedToProject -= OnAddFile;
+ IdeApp.Workspace.FileRemovedFromProject -= OnRemoveFile;
+ IdeApp.Workspace.FileRenamedInProject -= OnRenameFile;
+ IdeApp.Workspace.FilePropertyChangedInProject -= OnFilePropertyChanged;
IdeApp.Workspace.ActiveConfigurationChanged -= IdeAppWorkspaceActiveConfigurationChanged;
- FileService.FileRemoved -= deletedHandler;
+ FileService.FileRemoved -= OnSystemFileDeleted;
}
public override void OnNodeAdded (object dataObject)
{
base.OnNodeAdded (dataObject);
Project project = (Project) dataObject;
- project.Modified += projectChanged;
+ project.Modified += OnProjectModified;
}
public override void OnNodeRemoved (object dataObject)
{
base.OnNodeRemoved (dataObject);
Project project = (Project) dataObject;
- project.Modified -= projectChanged;
+ project.Modified -= OnProjectModified;
}
public override string GetNodeName (ITreeNavigator thisNode, object dataObject)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs
index fc5373e319..de72cf3d01 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs
@@ -40,9 +40,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
class ProjectReferenceFolderNodeBuilder: TypeNodeBuilder
{
- ProjectReferenceEventHandler addedHandler;
- ProjectReferenceEventHandler removedHandler;
-
public override Type NodeDataType {
get { return typeof(ProjectReferenceCollection); }
}
@@ -58,17 +55,14 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
protected override void Initialize ()
{
- addedHandler = DispatchService.GuiDispatch<ProjectReferenceEventHandler> (OnAddReference);
- removedHandler = DispatchService.GuiDispatch<ProjectReferenceEventHandler> (OnRemoveReference);
-
- IdeApp.Workspace.ReferenceAddedToProject += addedHandler;
- IdeApp.Workspace.ReferenceRemovedFromProject += removedHandler;
+ IdeApp.Workspace.ReferenceAddedToProject += OnAddReference;
+ IdeApp.Workspace.ReferenceRemovedFromProject += OnRemoveReference;
}
public override void Dispose ()
{
- IdeApp.Workspace.ReferenceAddedToProject -= addedHandler;
- IdeApp.Workspace.ReferenceRemovedFromProject -= removedHandler;
+ IdeApp.Workspace.ReferenceAddedToProject -= OnAddReference;
+ IdeApp.Workspace.ReferenceRemovedFromProject -= OnRemoveReference;
}
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs
index fe7e6e9f42..e3ed0f0edf 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ShowAllFilesBuilderExtension.cs
@@ -40,13 +40,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
class ShowAllFilesBuilderExtension: NodeBuilderExtension
{
- ProjectFileEventHandler fileAddedHandler;
- ProjectFileEventHandler fileRemovedHandler;
-
- EventHandler<FileEventArgs> createdHandler;
- EventHandler<FileEventArgs> deletedHandler;
- EventHandler<FileCopyEventArgs> renamedHandler;
-
List<Project> projects = new List<Project> ();
public override bool CanBuildNode (Type dataType)
@@ -63,28 +56,21 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
protected override void Initialize ()
{
- fileAddedHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (OnAddFile));
- fileRemovedHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (OnRemoveFile));
-
- createdHandler = (EventHandler<FileEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileEventArgs> (OnSystemFileAdded));
- deletedHandler = (EventHandler<FileEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileEventArgs> (OnSystemFileDeleted));
- renamedHandler = (EventHandler<FileCopyEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileCopyEventArgs> (OnSystemFileRenamed));
-
- IdeApp.Workspace.FileAddedToProject += fileAddedHandler;
- IdeApp.Workspace.FileRemovedFromProject += fileRemovedHandler;
+ IdeApp.Workspace.FileAddedToProject += OnAddFile;
+ IdeApp.Workspace.FileRemovedFromProject += OnRemoveFile;
- FileService.FileRenamed += renamedHandler;
- FileService.FileRemoved += deletedHandler;
- FileService.FileCreated += createdHandler;
+ FileService.FileRenamed += OnSystemFileRenamed;
+ FileService.FileRemoved += OnSystemFileDeleted;
+ FileService.FileCreated += OnSystemFileAdded;
}
public override void Dispose ()
{
- IdeApp.Workspace.FileAddedToProject -= fileAddedHandler;
- IdeApp.Workspace.FileRemovedFromProject -= fileRemovedHandler;
- FileService.FileRenamed -= renamedHandler;
- FileService.FileRemoved -= deletedHandler;
- FileService.FileCreated -= createdHandler;
+ IdeApp.Workspace.FileAddedToProject -= OnAddFile;
+ IdeApp.Workspace.FileRemovedFromProject -= OnRemoveFile;
+ FileService.FileRenamed -= OnSystemFileRenamed;
+ FileService.FileRemoved -= OnSystemFileDeleted;
+ FileService.FileCreated -= OnSystemFileAdded;
}
public override void OnNodeAdded (object dataObject)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs
index 1cb1f2f67f..d2ff61eff9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs
@@ -39,21 +39,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
class SolutionFolderNodeBuilder: TypeNodeBuilder
{
- SolutionItemRenamedEventHandler nameChanged;
- SolutionItemChangeEventHandler entryAdded;
- SolutionItemChangeEventHandler entryRemoved;
- EventHandler<SolutionItemFileEventArgs> fileAdded;
- EventHandler<SolutionItemFileEventArgs> fileRemoved;
-
- public SolutionFolderNodeBuilder ()
- {
- nameChanged = DispatchService.GuiDispatch<SolutionItemRenamedEventHandler> (OnSolutionFolderRenamed);
- entryAdded = DispatchService.GuiDispatch<SolutionItemChangeEventHandler> (OnEntryAdded);
- entryRemoved = DispatchService.GuiDispatch<SolutionItemChangeEventHandler> (OnEntryRemoved);
- fileAdded = DispatchService.GuiDispatch<EventHandler<SolutionItemFileEventArgs>> (OnFileAdded);
- fileRemoved = DispatchService.GuiDispatch<EventHandler<SolutionItemFileEventArgs>> (OnFileRemoved);
- }
-
public override Type NodeDataType {
get { return typeof(SolutionFolder); }
}
@@ -112,21 +97,21 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public override void OnNodeAdded (object dataObject)
{
SolutionFolder folder = (SolutionFolder) dataObject;
- folder.NameChanged += nameChanged;
- folder.ItemAdded += entryAdded;
- folder.ItemRemoved += entryRemoved;
- folder.SolutionItemFileAdded += fileAdded;
- folder.SolutionItemFileRemoved += fileRemoved;
+ folder.NameChanged += OnSolutionFolderRenamed;
+ folder.ItemAdded += OnEntryAdded;
+ folder.ItemRemoved += OnEntryRemoved;
+ folder.SolutionItemFileAdded += OnFileAdded;
+ folder.SolutionItemFileRemoved += OnFileRemoved;
}
public override void OnNodeRemoved (object dataObject)
{
SolutionFolder folder = (SolutionFolder) dataObject;
- folder.NameChanged -= nameChanged;
- folder.ItemAdded -= entryAdded;
- folder.ItemRemoved -= entryRemoved;
- folder.SolutionItemFileAdded -= fileAdded;
- folder.SolutionItemFileRemoved -= fileRemoved;
+ folder.NameChanged -= OnSolutionFolderRenamed;
+ folder.ItemAdded -= OnEntryAdded;
+ folder.ItemRemoved -= OnEntryRemoved;
+ folder.SolutionItemFileAdded -= OnFileAdded;
+ folder.SolutionItemFileRemoved -= OnFileRemoved;
}
void OnSolutionFolderRenamed (object sender, SolutionItemRenamedEventArgs e)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs
index 459e065e99..82d17cde9c 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs
@@ -43,33 +43,17 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
class SolutionNodeBuilder: TypeNodeBuilder
{
- SolutionItemChangeEventHandler globalItemAddedRemoved;
- SolutionItemChangeEventHandler combineEntryAdded;
- SolutionItemChangeEventHandler combineEntryRemoved;
- EventHandler<WorkspaceItemRenamedEventArgs> combineNameChanged;
- EventHandler startupChanged;
- EventHandler<SolutionItemFileEventArgs> fileAdded;
- EventHandler<SolutionItemFileEventArgs> fileRemoved;
-
public SolutionNodeBuilder ()
{
- globalItemAddedRemoved = (SolutionItemChangeEventHandler) DispatchService.GuiDispatch (new SolutionItemChangeEventHandler (OnSolutionItemAddedRemoved));
- combineEntryAdded = (SolutionItemChangeEventHandler) DispatchService.GuiDispatch (new SolutionItemChangeEventHandler (OnEntryAdded));
- combineEntryRemoved = (SolutionItemChangeEventHandler) DispatchService.GuiDispatch (new SolutionItemChangeEventHandler (OnEntryRemoved));
- combineNameChanged = (EventHandler<WorkspaceItemRenamedEventArgs>) DispatchService.GuiDispatch (new EventHandler<WorkspaceItemRenamedEventArgs> (OnCombineRenamed));
- startupChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnStartupChanged));
- fileAdded = (EventHandler<SolutionItemFileEventArgs>) DispatchService.GuiDispatch (new EventHandler<SolutionItemFileEventArgs> (OnFileAdded));
- fileRemoved = (EventHandler<SolutionItemFileEventArgs>) DispatchService.GuiDispatch (new EventHandler<SolutionItemFileEventArgs> (OnFileRemoved));
-
- IdeApp.Workspace.ItemAddedToSolution += globalItemAddedRemoved;
- IdeApp.Workspace.ItemRemovedFromSolution += globalItemAddedRemoved;
+ IdeApp.Workspace.ItemAddedToSolution += OnSolutionItemAddedRemoved;
+ IdeApp.Workspace.ItemRemovedFromSolution += OnSolutionItemAddedRemoved;
}
public override void Dispose ()
{
base.Dispose ();
- IdeApp.Workspace.ItemAddedToSolution -= globalItemAddedRemoved;
- IdeApp.Workspace.ItemRemovedFromSolution -= globalItemAddedRemoved;
+ IdeApp.Workspace.ItemAddedToSolution -= OnSolutionItemAddedRemoved;
+ IdeApp.Workspace.ItemRemovedFromSolution -= OnSolutionItemAddedRemoved;
}
@@ -121,23 +105,23 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public override void OnNodeAdded (object dataObject)
{
Solution solution = (Solution) dataObject;
- solution.NameChanged += combineNameChanged;
- solution.StartupItemChanged += startupChanged;
- solution.RootFolder.ItemAdded += combineEntryAdded;
- solution.RootFolder.ItemRemoved += combineEntryRemoved;
- solution.RootFolder.SolutionItemFileAdded += fileAdded;
- solution.RootFolder.SolutionItemFileRemoved += fileRemoved;
+ solution.NameChanged += OnCombineRenamed;
+ solution.StartupItemChanged += OnStartupChanged;
+ solution.RootFolder.ItemAdded += OnEntryAdded;
+ solution.RootFolder.ItemRemoved += OnEntryRemoved;
+ solution.RootFolder.SolutionItemFileAdded += OnFileAdded;
+ solution.RootFolder.SolutionItemFileRemoved += OnFileRemoved;
}
public override void OnNodeRemoved (object dataObject)
{
Solution solution = (Solution) dataObject;
- solution.NameChanged -= combineNameChanged;
- solution.StartupItemChanged -= startupChanged;
- solution.RootFolder.ItemAdded -= combineEntryAdded;
- solution.RootFolder.ItemRemoved -= combineEntryRemoved;
- solution.RootFolder.SolutionItemFileAdded -= fileAdded;
- solution.RootFolder.SolutionItemFileRemoved -= fileRemoved;
+ solution.NameChanged -= OnCombineRenamed;
+ solution.StartupItemChanged -= OnStartupChanged;
+ solution.RootFolder.ItemAdded -= OnEntryAdded;
+ solution.RootFolder.ItemRemoved -= OnEntryRemoved;
+ solution.RootFolder.SolutionItemFileAdded -= OnFileAdded;
+ solution.RootFolder.SolutionItemFileRemoved -= OnFileRemoved;
}
void OnStartupChanged (object sender, EventArgs args)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs
index d9958c9e15..0b76a56246 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/WorkspaceNodeBuilder.cs
@@ -41,20 +41,6 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
class WorkspaceNodeBuilder: TypeNodeBuilder
{
- EventHandler<WorkspaceItemChangeEventArgs> combineEntryAdded;
- EventHandler<WorkspaceItemChangeEventArgs> combineEntryRemoved;
- EventHandler<WorkspaceItemRenamedEventArgs> combineNameChanged;
-
- public WorkspaceNodeBuilder ()
- {
- combineEntryAdded = OnEntryAdded;
- combineEntryRemoved = OnEntryRemoved;
- combineNameChanged = OnCombineRenamed;
- combineEntryAdded = DispatchService.GuiDispatch (combineEntryAdded);
- combineEntryRemoved = DispatchService.GuiDispatch (combineEntryRemoved);
- combineNameChanged = DispatchService.GuiDispatch (combineNameChanged);
- }
-
public override Type NodeDataType {
get { return typeof(Workspace); }
}
@@ -100,17 +86,17 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public override void OnNodeAdded (object dataObject)
{
Workspace ws = (Workspace) dataObject;
- ws.ItemAdded += combineEntryAdded;
- ws.ItemRemoved += combineEntryRemoved;
- ws.NameChanged += combineNameChanged;
+ ws.ItemAdded += OnEntryAdded;
+ ws.ItemRemoved += OnEntryRemoved;
+ ws.NameChanged += OnCombineRenamed;
}
public override void OnNodeRemoved (object dataObject)
{
Workspace ws = (Workspace) dataObject;
- ws.ItemAdded -= combineEntryAdded;
- ws.ItemRemoved -= combineEntryRemoved;
- ws.NameChanged -= combineNameChanged;
+ ws.ItemAdded -= OnEntryAdded;
+ ws.ItemRemoved -= OnEntryRemoved;
+ ws.NameChanged -= OnCombineRenamed;
}
void OnEntryAdded (object sender, WorkspaceItemEventArgs e)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs
index ac2466a0ac..fd30546f06 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs
@@ -191,9 +191,9 @@ namespace MonoDevelop.Ide.Gui.Pads
sw = new MonoDevelop.Components.CompactScrolledWindow ();
sw.ShadowType = ShadowType.None;
sw.Add (view);
- TaskService.Errors.TasksRemoved += DispatchService.GuiDispatch<TaskEventHandler> (ShowResults);
- TaskService.Errors.TasksAdded += DispatchService.GuiDispatch<TaskEventHandler> (TaskAdded);
- TaskService.Errors.TasksChanged += DispatchService.GuiDispatch<TaskEventHandler> (TaskChanged);
+ TaskService.Errors.TasksRemoved += ShowResults;
+ TaskService.Errors.TasksAdded += TaskAdded;
+ TaskService.Errors.TasksChanged += TaskChanged;
TaskService.Errors.CurrentLocationTaskChanged += HandleTaskServiceErrorsCurrentLocationTaskChanged;
IdeApp.Workspace.FirstWorkspaceItemOpened += OnCombineOpen;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
index ba22ec2043..bc7bf6f75c 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DefaultWorkbench.cs
@@ -257,10 +257,10 @@ namespace MonoDevelop.Ide.Gui
public void InitializeWorkspace()
{
// FIXME: GTKize
- IdeApp.ProjectOperations.CurrentProjectChanged += (ProjectEventHandler) DispatchService.GuiDispatch (new ProjectEventHandler(SetProjectTitle));
+ IdeApp.ProjectOperations.CurrentProjectChanged += (s,a) => SetWorkbenchTitle ();
- FileService.FileRemoved += (EventHandler<FileEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileEventArgs>(CheckRemovedFile));
- FileService.FileRenamed += (EventHandler<FileCopyEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileCopyEventArgs>(CheckRenamedFile));
+ FileService.FileRemoved += CheckRemovedFile;
+ FileService.FileRenamed += CheckRenamedFile;
// TopMenu.Selected += new CommandHandler(OnTopMenuSelected);
// TopMenu.Deselected += new CommandHandler(OnTopMenuDeselected);
@@ -730,11 +730,6 @@ namespace MonoDevelop.Ide.Gui
return true;
}
- void SetProjectTitle(object sender, ProjectEventArgs e)
- {
- SetWorkbenchTitle ();
- }
-
int activeWindowChangeLock = 0;
public void LockActiveWindowChangeEvent ()
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/LayoutComboBox.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/LayoutComboBox.cs
index 3dce62c49a..a7acc0d79d 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/LayoutComboBox.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/LayoutComboBox.cs
@@ -41,7 +41,7 @@ namespace MonoDevelop.Ide.Gui
Combo.Changed += new EventHandler (OnComboChanged);
ShowAll ();
- IdeApp.Workbench.LayoutChanged += (EventHandler) DispatchService.GuiDispatch (new EventHandler (OnConfigurationsChanged));
+ IdeApp.Workbench.LayoutChanged += OnConfigurationsChanged;
}
void OnConfigurationsChanged (object sender, EventArgs e)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs
index c26cb908e9..eecb0e6979 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs
@@ -124,7 +124,7 @@ namespace MonoDevelop.Ide.ProgressMonitoring
protected override void OnCompleted ()
{
- DispatchService.GuiDispatch (new MessageHandler (ShowDialogs));
+ DispatchService.GuiDispatch (ShowDialogs);
base.OnCompleted ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MultiTaskDialogProgressMonitor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MultiTaskDialogProgressMonitor.cs
index aa37059952..ac66b89aef 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MultiTaskDialogProgressMonitor.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MultiTaskDialogProgressMonitor.cs
@@ -162,7 +162,7 @@ namespace MonoDevelop.Ide.ProgressMonitoring
protected override void OnCompleted ()
{
- DispatchService.GuiDispatch (new MessageHandler (ShowDialogs));
+ DispatchService.GuiDispatch (ShowDialogs);
base.OnCompleted ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/CommentTasksView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/CommentTasksView.cs
index 0751cf0303..b01e917033 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/CommentTasksView.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/CommentTasksView.cs
@@ -134,10 +134,10 @@ namespace MonoDevelop.Ide.Tasks
comments.EndTaskUpdates ();
}
- comments.TasksAdded += DispatchService.GuiDispatch<TaskEventHandler> (GeneratedTaskAdded);
- comments.TasksRemoved += DispatchService.GuiDispatch<TaskEventHandler> (GeneratedTaskRemoved);
+ comments.TasksAdded += GeneratedTaskAdded;
+ comments.TasksRemoved += GeneratedTaskRemoved;
- PropertyService.PropertyChanged += DispatchService.GuiDispatch<EventHandler<PropertyChangedEventArgs>> (OnPropertyUpdated);
+ PropertyService.PropertyChanged += OnPropertyUpdated;
// Initialize with existing tags.
foreach (TaskListEntry t in comments)
@@ -149,10 +149,10 @@ namespace MonoDevelop.Ide.Tasks
CommentTag.SpecialCommentTagsChanged -= OnCommentTagsChanged;
IdeApp.Workspace.WorkspaceItemLoaded -= OnWorkspaceItemLoaded;
IdeApp.Workspace.WorkspaceItemUnloaded -= OnWorkspaceItemUnloaded;
- comments.TasksAdded -= DispatchService.GuiDispatch<TaskEventHandler> (GeneratedTaskAdded);
- comments.TasksRemoved -= DispatchService.GuiDispatch<TaskEventHandler> (GeneratedTaskRemoved);
+ comments.TasksAdded -= GeneratedTaskAdded;
+ comments.TasksRemoved -= GeneratedTaskRemoved;
- PropertyService.PropertyChanged -= DispatchService.GuiDispatch<EventHandler<PropertyChangedEventArgs>> (OnPropertyUpdated);
+ PropertyService.PropertyChanged -= OnPropertyUpdated;
};
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/TaskStore.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/TaskStore.cs
index eaf3ca606a..5bc6c0215d 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/TaskStore.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/TaskStore.cs
@@ -70,6 +70,7 @@ namespace MonoDevelop.Ide.Tasks
};
TextEditorService.LineCountChangesReset += delegate (object sender, TextFileEventArgs args) {
+ Runtime.AssertMainThread ();
TaskListEntry[] ctasks = GetFileTasks (args.TextFile.Name.FullPath);
foreach (TaskListEntry task in ctasks) {
if (task.SavedLine != -1) {
@@ -81,6 +82,7 @@ namespace MonoDevelop.Ide.Tasks
};
TextEditorService.LineCountChanged += delegate (object sender, LineCountEventArgs args) {
+ Runtime.AssertMainThread ();
if (args.TextFile == null || args.TextFile.Name.IsNullOrEmpty)
return;
TaskListEntry[] ctasks = GetFileTasks (args.TextFile.Name.FullPath);
@@ -97,6 +99,7 @@ namespace MonoDevelop.Ide.Tasks
public void Add (TaskListEntry task)
{
+ Runtime.AssertMainThread ();
tasks.Add (task);
OnTaskAdded (task);
}
@@ -144,6 +147,7 @@ namespace MonoDevelop.Ide.Tasks
public void Remove (TaskListEntry task)
{
+ Runtime.AssertMainThread ();
if (tasks.Remove (task))
OnTaskRemoved (task);
}
@@ -219,6 +223,7 @@ namespace MonoDevelop.Ide.Tasks
public void BeginTaskUpdates ()
{
+ Runtime.AssertMainThread ();
if (taskUpdateCount++ != 0)
return;
tasksAdded = new List<TaskListEntry> ();
@@ -227,6 +232,7 @@ namespace MonoDevelop.Ide.Tasks
public void EndTaskUpdates ()
{
+ Runtime.AssertMainThread ();
if (--taskUpdateCount != 0)
return;
List<TaskListEntry> oldAdded = tasksAdded;
@@ -269,7 +275,7 @@ namespace MonoDevelop.Ide.Tasks
}
}
- internal void OnTaskAdded (TaskListEntry t)
+ void OnTaskAdded (TaskListEntry t)
{
if (t.FileName != FilePath.Null) {
TaskListEntry[] ta;
@@ -287,7 +293,7 @@ namespace MonoDevelop.Ide.Tasks
NotifyTasksAdded (new TaskListEntry [] { t });
}
- internal void OnTaskRemoved (TaskListEntry t)
+ void OnTaskRemoved (TaskListEntry t)
{
if (t.FileName != FilePath.Null) {
TaskListEntry[] ta;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/UserTasksView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/UserTasksView.cs
index 16ba0c9c36..db20452b03 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/UserTasksView.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Tasks/UserTasksView.cs
@@ -127,16 +127,16 @@ namespace MonoDevelop.Ide.Tasks
delButton.Clicked += new EventHandler (DeleteUserTaskClicked);
delButton.TooltipText = GettextCatalog.GetString ("Delete Task");
- TaskService.UserTasks.TasksChanged += DispatchService.GuiDispatch<TaskEventHandler> (UserTasksChanged);
- TaskService.UserTasks.TasksAdded += DispatchService.GuiDispatch<TaskEventHandler> (UserTasksChanged);
- TaskService.UserTasks.TasksRemoved += DispatchService.GuiDispatch<TaskEventHandler> (UserTasksChanged);
+ TaskService.UserTasks.TasksChanged += UserTasksChanged;
+ TaskService.UserTasks.TasksAdded += UserTasksChanged;
+ TaskService.UserTasks.TasksRemoved += UserTasksChanged;
if (IdeApp.Workspace.IsOpen)
solutionLoaded = true;
IdeApp.Workspace.FirstWorkspaceItemOpened += CombineOpened;
IdeApp.Workspace.LastWorkspaceItemClosed += CombineClosed;
- PropertyService.PropertyChanged += DispatchService.GuiDispatch<EventHandler<PropertyChangedEventArgs>> (OnPropertyUpdated);
+ PropertyService.PropertyChanged += OnPropertyUpdated;
ValidateButtons ();
// Initialize with existing tags.
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageRecentProjectsList.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageRecentProjectsList.cs
index 6083fef4d7..bbde387838 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageRecentProjectsList.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.WelcomePage/WelcomePageRecentProjectsList.cs
@@ -37,7 +37,6 @@ namespace MonoDevelop.Ide.WelcomePage
public class WelcomePageRecentProjectsList : WelcomePageSection
{
bool destroyed;
- readonly EventHandler recentChangesHandler;
readonly VBox box;
int itemCount = 10;
readonly Xwt.Drawing.Image openProjectIcon;
@@ -52,8 +51,7 @@ namespace MonoDevelop.Ide.WelcomePage
itemCount = count;
- recentChangesHandler = DispatchService.GuiDispatch (new EventHandler (RecentFilesChanged));
- DesktopService.RecentFiles.Changed += recentChangesHandler;
+ DesktopService.RecentFiles.Changed += RecentFilesChanged;
RecentFilesChanged (null, null);
SetContent (box);
@@ -66,7 +64,7 @@ namespace MonoDevelop.Ide.WelcomePage
{
destroyed = true;
base.OnDestroyed ();
- DesktopService.RecentFiles.Changed -= recentChangesHandler;
+ DesktopService.RecentFiles.Changed -= RecentFilesChanged;
}
void RecentFilesChanged (object sender, EventArgs e)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs
index 2321e3d88a..b8cba9ec3e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs
@@ -65,10 +65,8 @@ namespace MonoDevelop.Ide
if (PlatformService.CanOpenTerminal)
Runtime.ProcessService.SetExternalConsoleHandler (PlatformService.StartConsoleProcess);
- FileService.FileRemoved += DispatchService.GuiDispatch (
- new EventHandler<FileEventArgs> (NotifyFileRemoved));
- FileService.FileRenamed += DispatchService.GuiDispatch (
- new EventHandler<FileCopyEventArgs> (NotifyFileRenamed));
+ FileService.FileRemoved += NotifyFileRemoved;
+ FileService.FileRenamed += NotifyFileRenamed;
// Ensure we initialize the native toolkit on the UI thread immediately
// so that we can safely access this property later in other threads
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs
index 0e9cc35652..ad91cbef1e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DispatchService.cs
@@ -40,7 +40,7 @@ using System.Threading.Tasks;
namespace MonoDevelop.Ide
{
- public class DispatchService
+ public static class DispatchService
{
static Queue<GenericMessageContainer> backgroundQueue = new Queue<GenericMessageContainer> ();
static ManualResetEvent backgroundThreadWait = new ManualResetEvent (false);
@@ -211,12 +211,12 @@ namespace MonoDevelop.Ide
throw new InvalidOperationException ("This method can only be called in the GUI thread");
}
- public static Delegate GuiDispatch (Delegate del)
+ public static Delegate GuiDispatchDelegate (Delegate del)
{
return guiContext.CreateSynchronizedDelegate (del);
}
- public static T GuiDispatch<T> (T theDelegate)
+ public static T GuiDispatchDelegate<T> (T theDelegate)
{
if (guiContext == null)
return theDelegate;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs
index 78a8ee42bf..33cf83c704 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs
@@ -55,39 +55,11 @@ namespace MonoDevelop.Ide
bool useDefaultRuntime;
string preferredActiveExecutionTarget;
- ProjectFileEventHandler fileAddedToProjectHandler;
- ProjectFileEventHandler fileRemovedFromProjectHandler;
- ProjectFileRenamedEventHandler fileRenamedInProjectHandler;
- ProjectFileEventHandler fileChangedInProjectHandler;
- ProjectFileEventHandler filePropertyChangedInProjectHandler;
- ProjectReferenceEventHandler referenceAddedToProjectHandler;
- ProjectReferenceEventHandler referenceRemovedFromProjectHandler;
- SolutionItemChangeEventHandler itemAddedToSolutionHandler;
- SolutionItemChangeEventHandler itemRemovedFromSolutionHandler;
- EventHandler<WorkspaceItemChangeEventArgs> descendantItemAddedHandler;
- EventHandler<WorkspaceItemChangeEventArgs> descendantItemRemovedHandler;
- EventHandler configurationsChanged;
-
internal RootWorkspace ()
{
items = new RootWorkspaceItemCollection (this);
- fileAddedToProjectHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (NotifyFileAddedToProject));
- fileRemovedFromProjectHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (NotifyFileRemovedFromProject));
- fileRenamedInProjectHandler = (ProjectFileRenamedEventHandler) DispatchService.GuiDispatch (new ProjectFileRenamedEventHandler (NotifyFileRenamedInProject));
- fileChangedInProjectHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (NotifyFileChangedInProject));
- filePropertyChangedInProjectHandler = (ProjectFileEventHandler) DispatchService.GuiDispatch (new ProjectFileEventHandler (NotifyFilePropertyChangedInProject));
- referenceAddedToProjectHandler = (ProjectReferenceEventHandler) DispatchService.GuiDispatch (new ProjectReferenceEventHandler (NotifyReferenceAddedToProject));
- referenceRemovedFromProjectHandler = (ProjectReferenceEventHandler) DispatchService.GuiDispatch (new ProjectReferenceEventHandler (NotifyReferenceRemovedFromProject));
-
- itemAddedToSolutionHandler = (SolutionItemChangeEventHandler) DispatchService.GuiDispatch (new SolutionItemChangeEventHandler (NotifyItemAddedToSolution));
- itemRemovedFromSolutionHandler = (SolutionItemChangeEventHandler) DispatchService.GuiDispatch (new SolutionItemChangeEventHandler (NotifyItemRemovedFromSolution));
-
- descendantItemAddedHandler = (EventHandler<WorkspaceItemChangeEventArgs>) DispatchService.GuiDispatch (new EventHandler<WorkspaceItemChangeEventArgs> (NotifyDescendantItemAdded));
- descendantItemRemovedHandler = (EventHandler<WorkspaceItemChangeEventArgs>) DispatchService.GuiDispatch (new EventHandler<WorkspaceItemChangeEventArgs> (NotifyDescendantItemRemoved));
- configurationsChanged = (EventHandler) DispatchService.GuiDispatch (new EventHandler (NotifyConfigurationsChanged));
-
- FileService.FileRenamed += (EventHandler<FileCopyEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileCopyEventArgs> (CheckFileRename));
+ FileService.FileRenamed += CheckFileRename;
// Set the initial active runtime
UseDefaultRuntime = true;
@@ -99,7 +71,7 @@ namespace MonoDevelop.Ide
}
};
- FileService.FileChanged += (EventHandler<FileEventArgs>) DispatchService.GuiDispatch (new EventHandler<FileEventArgs> (CheckWorkspaceItems));
+ FileService.FileChanged += CheckWorkspaceItems;
}
public RootWorkspaceItemCollection Items {
@@ -961,10 +933,10 @@ namespace MonoDevelop.Ide
Workspace ws = item as Workspace;
if (ws != null) {
- ws.DescendantItemAdded += descendantItemAddedHandler;
- ws.DescendantItemRemoved += descendantItemRemovedHandler;
+ ws.DescendantItemAdded += NotifyDescendantItemAdded;
+ ws.DescendantItemRemoved += NotifyDescendantItemRemoved;
}
- item.ConfigurationsChanged += configurationsChanged;
+ item.ConfigurationsChanged += NotifyConfigurationsChanged;
WorkspaceItemEventArgs args = new WorkspaceItemEventArgs (item);
NotifyDescendantItemAdded (this, args);
@@ -995,10 +967,10 @@ namespace MonoDevelop.Ide
{
Workspace ws = item as Workspace;
if (ws != null) {
- ws.DescendantItemAdded -= descendantItemAddedHandler;
- ws.DescendantItemRemoved -= descendantItemRemovedHandler;
+ ws.DescendantItemAdded -= NotifyDescendantItemAdded;
+ ws.DescendantItemRemoved -= NotifyDescendantItemRemoved;
}
- item.ConfigurationsChanged -= configurationsChanged;
+ item.ConfigurationsChanged -= NotifyConfigurationsChanged;
WorkspaceItemEventArgs args = new WorkspaceItemEventArgs (item);
NotifyConfigurationsChanged (null, args);
@@ -1019,28 +991,28 @@ namespace MonoDevelop.Ide
void SubscribeSolution (Solution sol)
{
- sol.FileAddedToProject += fileAddedToProjectHandler;
- sol.FileRemovedFromProject += fileRemovedFromProjectHandler;
- sol.FileRenamedInProject += fileRenamedInProjectHandler;
- sol.FileChangedInProject += fileChangedInProjectHandler;
- sol.FilePropertyChangedInProject += filePropertyChangedInProjectHandler;
- sol.ReferenceAddedToProject += referenceAddedToProjectHandler;
- sol.ReferenceRemovedFromProject += referenceRemovedFromProjectHandler;
- sol.SolutionItemAdded += itemAddedToSolutionHandler;
- sol.SolutionItemRemoved += itemRemovedFromSolutionHandler;
+ sol.FileAddedToProject += NotifyFileAddedToProject;
+ sol.FileRemovedFromProject += NotifyFileRemovedFromProject;
+ sol.FileRenamedInProject += NotifyFileRenamedInProject;
+ sol.FileChangedInProject += NotifyFileChangedInProject;
+ sol.FilePropertyChangedInProject += NotifyFilePropertyChangedInProject;
+ sol.ReferenceAddedToProject += NotifyReferenceAddedToProject;
+ sol.ReferenceRemovedFromProject += NotifyReferenceRemovedFromProject;
+ sol.SolutionItemAdded += NotifyItemAddedToSolution;
+ sol.SolutionItemRemoved += NotifyItemRemovedFromSolution;
}
void UnsubscribeSolution (Solution solution)
{
- solution.FileAddedToProject -= fileAddedToProjectHandler;
- solution.FileRemovedFromProject -= fileRemovedFromProjectHandler;
- solution.FileRenamedInProject -= fileRenamedInProjectHandler;
- solution.FileChangedInProject -= fileChangedInProjectHandler;
- solution.FilePropertyChangedInProject -= filePropertyChangedInProjectHandler;
- solution.ReferenceAddedToProject -= referenceAddedToProjectHandler;
- solution.ReferenceRemovedFromProject -= referenceRemovedFromProjectHandler;
- solution.SolutionItemAdded -= itemAddedToSolutionHandler;
- solution.SolutionItemRemoved -= itemRemovedFromSolutionHandler;
+ solution.FileAddedToProject -= NotifyFileAddedToProject;
+ solution.FileRemovedFromProject -= NotifyFileRemovedFromProject;
+ solution.FileRenamedInProject -= NotifyFileRenamedInProject;
+ solution.FileChangedInProject -= NotifyFileChangedInProject;
+ solution.FilePropertyChangedInProject -= NotifyFilePropertyChangedInProject;
+ solution.ReferenceAddedToProject -= NotifyReferenceAddedToProject;
+ solution.ReferenceRemovedFromProject -= NotifyReferenceRemovedFromProject;
+ solution.SolutionItemAdded -= NotifyItemAddedToSolution;
+ solution.SolutionItemRemoved -= NotifyItemRemovedFromSolution;
}
void NotifyConfigurationsChanged (object s, EventArgs a)