diff --git a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs index f06ff92e3d..acd742041b 100644 --- a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs +++ b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs @@ -115,7 +115,7 @@ namespace ICSharpCode.SharpDevelop.Gui } #region Label edit - protected bool canLabelEdit = true; + protected bool canLabelEdit = false; public virtual bool CanLabelEdit { get { return canLabelEdit; diff --git a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs index ff1d2427cc..c810653a2e 100644 --- a/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs +++ b/src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs @@ -139,21 +139,24 @@ namespace ICSharpCode.SharpDevelop.Gui if (node == null) { return; } - node.EnsureVisible(); - SelectedNode = node; - LabelEdit = true; - node.BeforeLabelEdit(); - node.BeginEdit(); + + if (node.CanLabelEdit) { + node.EnsureVisible(); + SelectedNode = node; + LabelEdit = true; + node.BeforeLabelEdit(); + node.BeginEdit(); + } } - protected override bool ProcessDialogKey(Keys keyData) + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { switch (keyData) { case Keys.F2: StartLabelEdit(SelectedNode as ExtTreeNode); break; } - return base.ProcessDialogKey(keyData); + return base.ProcessCmdKey(ref msg, keyData); } protected override void OnAfterLabelEdit(NodeLabelEditEventArgs e) diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs index 47291e495a..8cfd9b8576 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs @@ -30,17 +30,6 @@ namespace ICSharpCode.SharpDevelop.Project string toolbarAddinTreePath = null; protected bool autoClearNodes = true; - protected bool canLabelEdited = true; - - /// - /// True, if this node can be label edited, false otherwise. - /// - public bool CanLabelEdited { - get { - return canLabelEdited; - } - } - public virtual string ToolbarAddinTreePath { get { diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs index e89e5c2eb9..4a91024f72 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/DirectoryNode.cs @@ -244,11 +244,13 @@ namespace ICSharpCode.SharpDevelop.Project { sortOrder = 1; SetIcon(); + canLabelEdit = true; } public DirectoryNode(string directory) : this(directory, FileNodeStatus.None) { sortOrder = 1; + canLabelEdit = true; } CustomNode removeMe = null; public DirectoryNode(string directory, FileNodeStatus fileNodeStatus) @@ -262,6 +264,7 @@ namespace ICSharpCode.SharpDevelop.Project removeMe.AddTo(this); SetIcon(); + canLabelEdit = true; } /// @@ -482,6 +485,9 @@ namespace ICSharpCode.SharpDevelop.Project if (!FileService.CheckDirectoryName(newName)) { return; } + if (String.Compare(Text, newName, true) == 0) { + return; + } string oldText = Text; Text = newName; if (Directory != null) { diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs index af2a0013a1..a05641e275 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/FileNode.cs @@ -19,7 +19,7 @@ namespace ICSharpCode.SharpDevelop.Project string fileName = String.Empty; FileNodeStatus fileNodeStatus = FileNodeStatus.None; ProjectItem projectItem = null; - + public override bool Visible { get { return ShowAll || fileNodeStatus != FileNodeStatus.None; @@ -112,11 +112,13 @@ namespace ICSharpCode.SharpDevelop.Project autoClearNodes = false; SetIcon(); + canLabelEdit = true; } public FileNode(string fileName) : this (fileName, FileNodeStatus.None) { sortOrder = 5; + canLabelEdit = true; } public override void ActivateItem() diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs index c691ccf2af..46f55cfa3a 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionFolderNode.cs @@ -60,6 +60,7 @@ namespace ICSharpCode.SharpDevelop.Project public SolutionFolderNode(Solution solution, SolutionFolder folder) { sortOrder = 0; + canLabelEdit = true; ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionFolderNode"; this.solution = solution; diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionItemNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionItemNode.cs index c1ea4f88f1..21d4cbf95f 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionItemNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionItemNode.cs @@ -35,6 +35,7 @@ namespace ICSharpCode.SharpDevelop.Project public SolutionItemNode(Solution solution, SolutionItem item) { sortOrder = 2; + canLabelEdit = true; ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionItemNode"; diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionNode.cs index 0988727942..783a2483bc 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/SolutionNode.cs @@ -39,6 +39,7 @@ namespace ICSharpCode.SharpDevelop.Project this.solution = solution; Text = "Solution " + solution.Name; autoClearNodes = false; + canLabelEdit = true; ContextmenuAddinTreePath = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode";