diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.java index c141cd06e57..8c701dd4f31 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.java @@ -22,6 +22,7 @@ public class CHMessages extends NLS { public static String CHViewPart_emptyPageMessage; public static String CHViewPart_FilterVariables_label; public static String CHViewPart_FilterVariables_tooltip; + public static String CHViewPart_FocusOn_label; public static String CHViewPart_HideMacros_label; public static String CHViewPart_HideMacros_tooltip; public static String CHViewPart_NextReference_label; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.properties index 20752fa6eee..94ddd6bd240 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHMessages.properties @@ -21,6 +21,7 @@ CHViewPart_Refresh_tooltip=Refresh View Content CHViewPart_WorkspaceScope=workspace CHViewPart_Title_callers=Callers of {0} - in {1} CHViewPart_Title_callees=Calls made by {0} - in {1} +CHViewPart_FocusOn_label=Focus On ''{0}'' CHViewPart_Open_label=Open CHViewPart_Open_tooltip=Open CHViewPart_OpenReference_label=Open Reference diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java index 89dd000d76c..d4e40df4645 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/callhierarchy/CHViewPart.java @@ -69,6 +69,7 @@ import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup; import org.eclipse.cdt.internal.ui.util.CoreUtility; import org.eclipse.cdt.internal.ui.util.Messages; import org.eclipse.cdt.internal.ui.viewsupport.AdaptingSelectionProvider; +import org.eclipse.cdt.internal.ui.viewsupport.CElementLabels; import org.eclipse.cdt.internal.ui.viewsupport.EditorOpener; import org.eclipse.cdt.internal.ui.viewsupport.ExtendedTreeViewer; import org.eclipse.cdt.internal.ui.viewsupport.TreeNavigator; @@ -658,6 +659,19 @@ public class CHViewPart extends ViewPart { menu.appendToGroup(IContextMenuConstants.GROUP_OPEN, fShowReference); } menu.appendToGroup(IContextMenuConstants.GROUP_OPEN, fOpenElement); + + if (node.getParent() != null) { + final ICElement element= node.getRepresentedDeclaration(); + if (element != null) { + String label= Messages.format(CHMessages.CHViewPart_FocusOn_label, + CElementLabels.getTextLabel(element, CElementLabels.ALL_FULLY_QUALIFIED | CElementLabels.M_PARAMETER_TYPES)); + menu.appendToGroup(IContextMenuConstants.GROUP_OPEN, new Action(label) { + public void run() { + setInput(element); + } + }); + } + } } // action groups