diff --git a/src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingService.cs b/src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingService.cs index 610e3df3b1..55c66230e0 100644 --- a/src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingService.cs +++ b/src/Main/Base/Project/Src/Services/DisplayBinding/DisplayBindingService.cs @@ -64,12 +64,15 @@ namespace ICSharpCode.Core return null; } - public static void AttachSubWindows(IViewContent viewContent) + public static void AttachSubWindows(IViewContent viewContent, bool isReattaching) { foreach (DisplayBindingDescriptor binding in bindings) { if (binding.IsSecondary && binding.CanAttachToFile(viewContent.FileName ?? viewContent.UntitledName)) { ISecondaryDisplayBinding displayBinding = binding.SecondaryBinding; - if (displayBinding != null && displayBinding.CanAttachTo(viewContent)) { + if (displayBinding != null + && (!isReattaching || displayBinding.ReattachWhenParserServiceIsReady) + && displayBinding.CanAttachTo(viewContent)) + { ISecondaryViewContent[] subViewContents = binding.SecondaryBinding.CreateSecondaryViewContent(viewContent); if (subViewContents != null) { viewContent.SecondaryViewContents.AddRange(subViewContents); diff --git a/src/Main/Base/Project/Src/Services/File/FileService.cs b/src/Main/Base/Project/Src/Services/File/FileService.cs index 1712d6a0c9..ca2978c5f8 100644 --- a/src/Main/Base/Project/Src/Services/File/FileService.cs +++ b/src/Main/Base/Project/Src/Services/File/FileService.cs @@ -63,7 +63,7 @@ namespace ICSharpCode.Core { IViewContent newContent = binding.CreateContentForFile(fileName); if (newContent != null) { - DisplayBindingService.AttachSubWindows(newContent); + DisplayBindingService.AttachSubWindows(newContent, false); WorkbenchSingleton.Workbench.ShowView(newContent); } } @@ -108,7 +108,7 @@ namespace ICSharpCode.Core } newContent.UntitledName = defaultName; newContent.IsDirty = false; - DisplayBindingService.AttachSubWindows(newContent); + DisplayBindingService.AttachSubWindows(newContent, false); WorkbenchSingleton.Workbench.ShowView(newContent); return newContent.WorkbenchWindow;