diff --git a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs index 2ccebe401d..c48e44a6ac 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/ClassBrowserTreeView.cs @@ -36,17 +36,11 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser } } - protected override void OnMouseUp(System.Windows.Input.MouseButtonEventArgs e) + protected override void OnContextMenuOpening(ContextMenuEventArgs e) { - if (e.ChangedButton == MouseButton.Right) { - var treeNode = this.SelectedItem as ModelCollectionTreeNode; - if (treeNode != null) { - var model = treeNode.Model; - if (model is IEntityModel) { - var ctx = MenuService.ShowContextMenu(e.Source as UIElement, (IEntityModel) model, "/SharpDevelop/EntityContextMenu"); - e.Handled = true; - } - } + var treeNode = this.SelectedItem as ModelCollectionTreeNode; + if (treeNode != null) { + treeNode.ShowContextMenu(); } } } diff --git a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs index beb61727a3..40771a191b 100644 --- a/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs +++ b/src/Main/Base/Project/Dom/ClassBrowser/WorkspaceTreeNode.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Windows.Media; +using ICSharpCode.Core.Presentation; using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.Utils; using ICSharpCode.TreeView; @@ -220,6 +221,14 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser if (target != null) NavigationService.NavigateTo(target); } + + public override void ShowContextMenu() + { + var model = this.Model; + if (model is IEntityModel) { + var ctx = MenuService.ShowContextMenu(null, (IEntityModel) model, "/SharpDevelop/EntityContextMenu"); + } + } } public class MemberTreeNode : ModelCollectionTreeNode @@ -282,5 +291,13 @@ namespace ICSharpCode.SharpDevelop.Dom.ClassBrowser if (target != null) NavigationService.NavigateTo(target); } + + public override void ShowContextMenu() + { + var model = this.Model; + if (model is IEntityModel) { + var ctx = MenuService.ShowContextMenu(null, (IEntityModel) model, "/SharpDevelop/EntityContextMenu"); + } + } } } diff --git a/src/Main/Base/Project/Dom/ModelCollectionTreeNode.cs b/src/Main/Base/Project/Dom/ModelCollectionTreeNode.cs index 4222f53fa2..57767df6ae 100644 --- a/src/Main/Base/Project/Dom/ModelCollectionTreeNode.cs +++ b/src/Main/Base/Project/Dom/ModelCollectionTreeNode.cs @@ -54,6 +54,11 @@ namespace ICSharpCode.SharpDevelop.Dom } } + public virtual void ShowContextMenu() + { + // Do nothing in base class + } + #region Manage Children protected override void LoadChildren() {