Bug 283649 View menus cannot be rendered, throws IAE
Click on any view's view menu, an IAE will be thrown. I'm quite positive this used to work. java.lang.IllegalArgumentException: The widget must be MenuItem, Decorations, or Control but is: ToolItem {} at org.eclipse.e4.workbench.ui.renderers.swt.SWTPartRenderer.createMenu(SWTPartRenderer.java:73) at org.eclipse.e4.workbench.ui.renderers.swt.StackRenderer.showMenu(StackRenderer.java:478) at org.eclipse.e4.workbench.ui.renderers.swt.StackRenderer$8.widgetSelected(StackRenderer.java:463) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartRenderer.java
protected Widget getParentWidget(MPart<?> element) {
		return (element.getParent() instanceof MPart) ? (Widget) ((MPart<?>) (element
				.getParent())).getWidget()
				: null;
	}
	public void disposeWidget(MPart<?> part) {
		Widget curWidget = (Widget) part.getWidget();
		
		if (curWidget instanceof Control)
			curWidget = getOutermost((Control) curWidget);
		if (curWidget != null && !curWidget.isDisposed()) {
			unbindWidget(part);
			curWidget.dispose();
		}
	}
	public void hookControllerLogic(final MPart<?> me) {
		Widget widget = (Widget) me.getWidget();
		
		widget.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(DisposeEvent e) {
				MPart<?> model = (MPart<?>) e.widget.getData(OWNING_ME);
				if (model != null)
					model.setWidget(null);
			}
		});
		
		
		if (widget instanceof Control && me instanceof MItemPart<?>) {
			((Control) widget).getAccessible().addAccessibleListener(
					new AccessibleAdapter() {