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();