Browse Source

Fix label edit operation in ExtTreeView (original text was shown behind label edit text box). Based on patch by Boris Kozorovitzky.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5998 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 15 years ago
parent
commit
aca411965e
  1. 15
      src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs

15
src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs

@ -136,6 +136,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -136,6 +136,8 @@ namespace ICSharpCode.SharpDevelop.Gui
#region label editing
string labelEditOldLabel;
public void StartLabelEdit(ExtTreeNode node)
{
if (node == null) {
@ -148,6 +150,10 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -148,6 +150,10 @@ namespace ICSharpCode.SharpDevelop.Gui
LabelEdit = true;
node.BeforeLabelEdit();
node.BeginEdit();
// remove node's label so that it doesn't get rendered behind the label editing textbox
// (if the user deletes some characters so that the text box shrinks)
labelEditOldLabel = node.Text;
node.Text = "";
}
}
@ -173,10 +179,15 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -173,10 +179,15 @@ namespace ICSharpCode.SharpDevelop.Gui
e.CancelEdit = true;
ExtTreeNode node = e.Node as ExtTreeNode;
if (node != null && e.Label != null) {
node.AfterLabelEdit(e.Label);
if (node != null) {
node.Text = labelEditOldLabel;
labelEditOldLabel = null;
if (e.Label != null) {
node.AfterLabelEdit(e.Label);
}
}
SortParentNodes(e.Node);
SelectedNode = e.Node;
}
private void SortParentNodes(TreeNode treeNode)

Loading…
Cancel
Save