Browse Source

Prevent collapsing/expanding of ExtTreeView nodes on double click if they override ActivateItem. This fixes forum-9077.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1565 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
a3ca35f2a5
  1. 1
      src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs
  2. 23
      src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeView.cs

1
src/Main/Base/Project/Src/Gui/Components/ExtTreeView/ExtTreeNode.cs

@ -99,6 +99,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -99,6 +99,7 @@ namespace ICSharpCode.SharpDevelop.Gui
public virtual void ActivateItem()
{
this.Toggle();
}
public virtual void CheckedChanged()

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

@ -181,9 +181,15 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -181,9 +181,15 @@ namespace ICSharpCode.SharpDevelop.Gui
bool inRefresh;
protected override void OnBeforeExpand(TreeViewCancelEventArgs e)
{
if (mouseClickNum == 2) {
mouseClickNum = 0; // only intercept first occurrance, don't prevent expansion by ActivateItem on double click
e.Cancel = true;
return;
}
base.OnBeforeExpand(e);
if (e.Node == null)
if (e.Node == null) {
return;
}
try {
if (e.Node is ExtTreeNode) {
if (((ExtTreeNode)e.Node).IsInitialized == false) {
@ -219,9 +225,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -219,9 +225,13 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
protected override void OnBeforeCollapse(TreeViewCancelEventArgs e)
{
if (mouseClickNum == 2) {
mouseClickNum = 0; // only intercept first occurrance, don't prevent collapsing by ActivateItem on double click
e.Cancel = true;
return;
}
base.OnBeforeCollapse(e);
if (e.Node is ExtTreeNode) {
((ExtTreeNode)e.Node).Collapsing();
@ -263,8 +273,11 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -263,8 +273,11 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
int mouseClickNum; // 0 if mouse button is not pressed, otherwise click number (1=normal, 2=double click)
protected override void OnMouseDown(MouseEventArgs e)
{
mouseClickNum = e.Clicks;
base.OnMouseDown(e);
TreeNode node = GetNodeAt(e.X, e.Y);
if (node != null) {
@ -278,6 +291,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -278,6 +291,12 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
protected override void OnMouseUp(MouseEventArgs e)
{
mouseClickNum = 0;
base.OnMouseUp(e);
}
protected override void OnBeforeSelect(TreeViewCancelEventArgs e)
{
// setting the context menu must be done by BeforeSelect because

Loading…
Cancel
Save