diff --git a/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs b/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs index 9bc0fb133b..f4fc6ddefd 100644 --- a/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs +++ b/src/Main/Base/Project/Src/Gui/AbstractPadContent.cs @@ -24,6 +24,21 @@ namespace ICSharpCode.SharpDevelop.Gui { } + public void BringToFront() + { + PadDescriptor d = this.PadDescriptor; + if (d != null) + d.BringPadToFront(); + } + + protected virtual PadDescriptor PadDescriptor { + get { + if (WorkbenchSingleton.Workbench == null || WorkbenchSingleton.Workbench.WorkbenchLayout == null) + return null; + return WorkbenchSingleton.Workbench.GetPad(GetType()); + } + } + public bool IsVisible { get { Control ctl = this.Control; diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs index 5dee9ab9ef..e9d947910a 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs @@ -162,16 +162,13 @@ namespace ICSharpCode.SharpDevelop.Project.Commands public override void Run() { + ProjectBrowserPad.Instance.BringToFront(); this.AddExistingItems(); } protected IEnumerable AddExistingItems() { - TreeNode selectedNode = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode; - DirectoryNode node = selectedNode as DirectoryNode; - if (node == null && selectedNode != null) { - node = selectedNode.Parent as DirectoryNode; - } + DirectoryNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedDirectoryNode; if (node == null) { return null; } @@ -277,11 +274,8 @@ namespace ICSharpCode.SharpDevelop.Project.Commands { public override void Run() { - TreeNode selectedNode = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode; - DirectoryNode node = selectedNode as DirectoryNode; - if (node == null && selectedNode != null) { - node = selectedNode.Parent as DirectoryNode; - } + ProjectBrowserPad.Instance.BringToFront(); + DirectoryNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedDirectoryNode; if (node == null) { return; } @@ -344,6 +338,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands { public override void Run() { + ProjectBrowserPad.Instance.BringToFront(); this.AddNewItems(); } @@ -411,11 +406,9 @@ namespace ICSharpCode.SharpDevelop.Project.Commands public override void Run() { - TreeNode selectedNode = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode; - DirectoryNode node = selectedNode as DirectoryNode; - if (node == null) { - node = selectedNode.Parent as DirectoryNode; - } + ProjectBrowserPad.Instance.BringToFront(); + + DirectoryNode node = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedDirectoryNode; if (node == null) { return; } @@ -432,8 +425,10 @@ namespace ICSharpCode.SharpDevelop.Project.Commands { TreeNode selectedNode = ProjectBrowserPad.Instance.ProjectBrowserControl.SelectedNode; DirectoryNode node = selectedNode as DirectoryNode; - Directory.CreateDirectory(node.Directory); - IncludeFileInProject.IncludeDirectoryNode(node, false); + if (node != null) { + Directory.CreateDirectory(node.Directory); + IncludeFileInProject.IncludeDirectoryNode(node, false); + } } } }