From c994982afcb5d54d440efc2f2b64381f15ff3a20 Mon Sep 17 00:00:00 2001 From: Matt Ward <ward.matt@gmail.com> Date: Mon, 3 Apr 2006 18:49:42 +0000 Subject: [PATCH] SD2-741. The active workbench window is no longer changed when switching between different layouts. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1264 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs index 3c63b9ef72..72f926ca01 100644 --- a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs +++ b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceLayout.cs @@ -218,6 +218,7 @@ namespace ICSharpCode.SharpDevelop.Gui if (dockPanel != null) { LockWindowUpdate(wbForm.Handle); try { + IViewContent activeView = GetActiveView(); dockPanel.ActiveDocumentChanged -= new EventHandler(ActiveMdiChanged); DetachPadContents(true); @@ -227,6 +228,9 @@ namespace ICSharpCode.SharpDevelop.Gui LoadLayoutConfiguration(); ShowPads(); ShowViewContents(); + if (activeView != null && activeView.WorkbenchWindow != null) { + activeView.WorkbenchWindow.SelectWindow(); + } } finally { LockWindowUpdate(IntPtr.Zero); } @@ -556,6 +560,15 @@ namespace ICSharpCode.SharpDevelop.Gui OnActiveWorkbenchWindowChanged(e); } + static IViewContent GetActiveView() + { + IWorkbenchWindow activeWindow = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; + if (activeWindow != null) { + return activeWindow.ViewContent; + } + return null; + } + IWorkbenchWindow oldSelectedWindow = null; public virtual void OnActiveWorkbenchWindowChanged(EventArgs e) {