From 80c40eb5c00b8ec1223253909876bb9a4d9d6ff3 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Fri, 26 Feb 2010 21:16:24 +0000 Subject: [PATCH] Fixed SD2-1621 - WinForms designer: events are not created in source code git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5552 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../FormsDesigner/Project/Src/DesignerViewContent.cs | 7 ++----- .../Base/Project/Src/Commands/AutostartCommands.cs | 8 ++++++++ src/Main/Base/Project/Src/Gui/AbstractViewContent.cs | 10 ++++++++-- src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs | 4 ++++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs index 499502717c..69840e1f25 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs @@ -123,10 +123,7 @@ namespace ICSharpCode.FormsDesigner this.sourceCodeStorage = new DesignerSourceCodeStorage(); this.resourceStore = new ResourceStore(this); - // null check is required to support running in unit test mode - if (WorkbenchSingleton.Workbench != null) { - this.IsActiveViewContentChanged += this.IsActiveViewContentChangedHandler; - } + this.IsActiveViewContentChanged += this.IsActiveViewContentChangedHandler; FileService.FileRemoving += this.FileServiceFileRemoving; ICSharpCode.SharpDevelop.Debugging.DebuggerService.DebugStarting += this.DebugStarting; @@ -140,7 +137,7 @@ namespace ICSharpCode.FormsDesigner if (generator == null) throw new ArgumentNullException("generator"); - this.loaderProvider = loaderProvider; + this.loaderProvider = loaderProvider; this.generator = generator; this.generator.Attach(this); diff --git a/src/Main/Base/Project/Src/Commands/AutostartCommands.cs b/src/Main/Base/Project/Src/Commands/AutostartCommands.cs index 5b69fd2e43..9a83412618 100644 --- a/src/Main/Base/Project/Src/Commands/AutostartCommands.cs +++ b/src/Main/Base/Project/Src/Commands/AutostartCommands.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Windows.Forms; +using System.Windows.Interop; using ICSharpCode.Core; using ICSharpCode.Core.WinForms; @@ -30,9 +31,16 @@ namespace ICSharpCode.SharpDevelop.Commands { app = new App(); System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop(); + ComponentDispatcher.ThreadIdle -= ComponentDispatcher_ThreadIdle; // ensure we don't register twice + ComponentDispatcher.ThreadIdle += ComponentDispatcher_ThreadIdle; WorkbenchSingleton.InitializeWorkbench(new WpfWorkbench(), new AvalonDockLayout()); } + static void ComponentDispatcher_ThreadIdle(object sender, EventArgs e) + { + System.Windows.Forms.Application.RaiseIdle(e); + } + public void Run(IList fileList) { bool didLoadSolutionOrFile = false; diff --git a/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs b/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs index f359da4abf..bf0b4c3532 100644 --- a/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs +++ b/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs @@ -477,7 +477,10 @@ namespace ICSharpCode.SharpDevelop.Gui if (!registeredOnViewContentChange) { // register WorkbenchSingleton.Workbench.ActiveViewContentChanged only on demand wasActiveViewContent = IsActiveViewContent; - WorkbenchSingleton.Workbench.ActiveViewContentChanged += OnActiveViewContentChanged; + // null check is required to support running in unit test mode + if (WorkbenchSingleton.Workbench != null) { + WorkbenchSingleton.Workbench.ActiveViewContentChanged += OnActiveViewContentChanged; + } registeredOnViewContentChange = true; } isActiveViewContentChanged += value; @@ -490,7 +493,10 @@ namespace ICSharpCode.SharpDevelop.Gui void UnregisterOnActiveViewContentChanged() { if (registeredOnViewContentChange) { - WorkbenchSingleton.Workbench.ActiveViewContentChanged -= OnActiveViewContentChanged; + // null check is required to support running in unit test mode + if (WorkbenchSingleton.Workbench != null) { + WorkbenchSingleton.Workbench.ActiveViewContentChanged -= OnActiveViewContentChanged; + } registeredOnViewContentChange = false; } } diff --git a/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs b/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs index 10648204fb..15fbdfaf57 100644 --- a/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs +++ b/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs @@ -100,6 +100,10 @@ namespace ICSharpCode.SharpDevelop.Gui Debug.WriteLine("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow); LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow); }; + + System.Windows.Forms.Application.Idle += delegate { + LoggingService.Debug("Idle"); + }; } ///