Bug 310266 PartRenderingEngine shuts down when just one MWindow is destroyed
PartRenderingEngine's run(MApplicationElement, IEclipseContext) method has a big, inlined "HACK!!" comment in it. The problem is that it only checks for the disposal of one single shell. So if you have other shells hanging around (other MWindows), your whole application will be brought down even if you've only just closed one window.
bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/internal/PartRenderingEngine.java
}
	protected Object createWidget(MUIElement element, Object parent) {
		AbstractPartRenderer renderer = getRenderer(element, parent);
		if (renderer != null) {
			Object newWidget = renderer.createWidget(element, parent);
			if (newWidget != null) {
				renderer.bindWidget(element, newWidget);
				return newWidget;
			}
		}
		return null;
	}
	private AbstractPartRenderer getRenderer(MUIElement uiElement, Object parent) {
		return curFactory.getRenderer(uiElement, parent);
	}
	protected AbstractPartRenderer getRendererFor(MUIElement element) {
		return (AbstractPartRenderer) element.getRenderer();
	}
	public Object run(final MApplicationElement uiRoot,
			final IEclipseContext runContext) {
		final Display display = Display.getDefault();
		Realm.runWithDefault(SWTObservables.getRealm(display), new Runnable() {
			public void run() {
				String cssURI = (String) runContext
						.get(E4Workbench.CSS_URI_ARG);
				String cssResourcesURI = (String) runContext
						.get(E4Workbench.CSS_RESOURCE_URI_ARG);
				CSSStylingSupport.initializeStyling(display, cssURI,
						cssResourcesURI, runContext);