diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
index 04f8540b0e6..dea52237d7f 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
@@ -37,6 +37,7 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.help.IContext;
import org.eclipse.help.IContextProvider;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IAction;
@@ -113,6 +114,8 @@ import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.custom.ST;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.custom.VerifyKeyListener;
+import org.eclipse.swt.events.HelpEvent;
+import org.eclipse.swt.events.HelpListener;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
@@ -132,6 +135,7 @@ import org.eclipse.ui.actions.ActionContext;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.editors.text.EditorsUI;
import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.help.IWorkbenchHelpSystem;
import org.eclipse.ui.ide.IGotoMarker;
import org.eclipse.ui.navigator.ICommonMenuConstants;
import org.eclipse.ui.part.EditorActionBarContributor;
@@ -2322,8 +2326,21 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IC
public void createPartControl(Composite parent) {
super.createPartControl(parent);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, ICHelpContextIds.CEDITOR_VIEW);
-
+ // bug 291008 - register custom help listener
+ final IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
+ parent.addHelpListener(new HelpListener() {
+ public void helpRequested(HelpEvent e) {
+ IContextProvider provider = (IContextProvider) CEditor.this.getAdapter(IContextProvider.class);
+ if (provider != null) {
+ IContext context = provider.getContext(CEditor.this);
+ if (context != null) {
+ helpSystem.displayHelp(context);
+ return;
+ }
+ }
+ helpSystem.displayHelp(ICHelpContextIds.CEDITOR_VIEW);
+ }});
+
fEditorSelectionChangedListener = new EditorSelectionChangedListener();
fEditorSelectionChangedListener.install(getSelectionProvider());
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
index 64fe222180b..37b83f02933 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditorMessages.properties
@@ -31,8 +31,8 @@ OpenDeclarations_dialog_title=Open Declaration
OpenDeclarations_label=&Open Declaration
OpenDeclarations_tooltip=Open an editor on the selected element's declaration
-DefaultCEditorTextHover_html_name=Name:
-DefaultCEditorTextHover_html_prototype=
Prototype:
+DefaultCEditorTextHover_html_name=Name:
+DefaultCEditorTextHover_html_prototype=
Prototype:
DefaultCEditorTextHover_html_description=
Description:
DefaultCEditorTextHover_html_includes=
Header files: