Bug 352380 - [Compatibility] Empty 'Team' menu shows up in context menus

We need to check team.main submenus.  Well, any contributed menu's
submenus.

Bug: 352380
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java
index bb2cdd2..2c0a32f 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRendererFilter.java
@@ -269,7 +269,7 @@
 			evalContext = modelService.getContainingContext(menuModel);
 		}
 		updateElementVisibility(menuModel, renderer, menuManager, evalContext,
-				true, true);
+				2, true);
 
 		// last thing to do, kill the event and update the menu manager
 		event.type = SWT.None;
@@ -306,7 +306,7 @@
 	 */
 	public static void updateElementVisibility(final MMenu menuModel,
 			MenuManagerRenderer renderer, MenuManager menuManager,
-			final IEclipseContext evalContext, boolean recurse,
+			final IEclipseContext evalContext, final int recurseLevel,
 			boolean updateEnablement) {
 		final ExpressionContext exprContext = new ExpressionContext(evalContext);
 		HashSet<ContributionRecord> records = new HashSet<ContributionRecord>();
@@ -320,12 +320,13 @@
 				MenuManagerRenderer.updateVisibility(menuManager, element,
 						exprContext);
 			}
-			if (recurse && element.isVisible() && element instanceof MMenu) {
+			if (recurseLevel > 0 && element.isVisible()
+					&& element instanceof MMenu) {
 				MMenu childMenu = (MMenu) element;
 				MenuManager childManager = renderer.getManager(childMenu);
 				if (childManager != null) {
 					updateElementVisibility(childMenu, renderer, childManager,
-							evalContext, false, false);
+							evalContext, recurseLevel - 1, false);
 				}
 			}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
index 5361293..9694016 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchWindow.java
@@ -564,7 +564,7 @@
 							return;
 						}
 						MenuManagerRendererFilter.updateElementVisibility(mainMenu, renderer,
-								menuManager, windowContext.getActiveLeaf(), true, false);
+								menuManager, windowContext.getActiveLeaf(), 1, false);
 						menuManager.update(true);
 					} finally {
 						canUpdateMenus = true;