Browse Source

Force handle creation of main form in WorkbenchSingleton.InitializeWorkbench.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@4019 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
c1a6698887
  1. 18
      src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs

18
src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs

@ -104,21 +104,21 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -104,21 +104,21 @@ namespace ICSharpCode.SharpDevelop.Gui
Project.CustomToolsService.Initialize();
Project.BuildModifiedProjectsOnlyService.Initialize();
workbench.MainForm.CreateControl(); // ensure the control is created so Invoke can work
workbench.Initialize();
workbench.SetMemento(PropertyService.Get(workbenchMemento, new Properties()));
caller = new STAThreadCaller(workbench.MainForm);
WinFormsMessageService.DialogOwner = workbench.MainForm;
WinFormsMessageService.DialogSynchronizeInvoke = workbench.MainForm;
PropertyService.PropertyChanged += new PropertyChangedEventHandler(TrackPropertyChanges);
ResourceService.LanguageChanged += delegate { workbench.RedrawAllComponents(); };
caller = new STAThreadCaller(workbench.MainForm);
ApplicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return WorkbenchSingleton.Workbench.ActiveContent; });
workbench.Initialize();
workbench.SetMemento(PropertyService.Get(workbenchMemento, new Properties()));
// attach workbench layout -> load pads
workbench.WorkbenchLayout = layout;
ApplicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return WorkbenchSingleton.Workbench.ActiveContent; });
OnWorkbenchCreated();
// initialize workbench-dependent services:
@ -167,6 +167,10 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -167,6 +167,10 @@ namespace ICSharpCode.SharpDevelop.Gui
if (ctl == null)
throw new ArgumentNullException("ctl");
this.ctl = ctl;
ctl.CreateControl(); // ensure the control is created so Invoke can work
// CreateControl() doesn't always force handle creation - fetch the handle once
// to ensure it really gets created.
IntPtr handle = ctl.Handle;
}
public object Call(Delegate method, object[] arguments)
@ -326,7 +330,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -326,7 +330,7 @@ namespace ICSharpCode.SharpDevelop.Gui
delegate {
Timer t = new Timer();
t.Interval = delayMilliseconds;
t.Tick += delegate {
t.Tick += delegate {
t.Stop();
t.Dispose();
method();

Loading…
Cancel
Save