Fix for Bug 374444 - [Compatibility] WTP Source Editor "Source"
context menu missing items
diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/modeling/MenuService.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/modeling/MenuService.java
index d03020a..97598c0 100644
--- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/modeling/MenuService.java
+++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/modeling/MenuService.java
@@ -58,8 +58,17 @@
IRendererFactory.class);
AbstractPartRenderer renderer = rendererFactory.getRenderer(mmenu,
parentControl);
- IEclipseContext popupContext = part.getContext().createChild(
- "popup:" + mmenu.getElementId());
+
+ // Check whether the part's is a multi-page editor, if so use its
+ // context instead
+ IEclipseContext parentContext = part.getContext();
+ if (parentContext.get("MultiPageEditorSite") instanceof IEclipseContext) {
+ parentContext = (IEclipseContext) parentContext
+ .get("MultiPageEditorSite");
+ }
+
+ IEclipseContext popupContext = parentContext.createChild("popup:"
+ + mmenu.getElementId());
mmenu.setContext(popupContext);
Object widget = renderer.createWidget(mmenu, parentControl);
if (!(widget instanceof Menu)) {
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java
index 718190f..f647723 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/MultiPageEditorSite.java
@@ -138,6 +138,7 @@
}});
context = site.getModel().getContext().createChild("MultiPageEditorSite"); //$NON-NLS-1$
+ site.getModel().getContext().set("MultiPageEditorSite", context); //$NON-NLS-1$
serviceLocator.setContext(context);
initializeDefaultServices();