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
@Optional
	protected IEventBroker eventBroker;
	@Inject
	EModelService modelService;
	@Inject
	protected Logger logger;
	@Inject
	public PartRenderingEngine(
			@Named(E4Workbench.RENDERER_FACTORY_URI) @Optional String factoryUrl) {
		if (factoryUrl == null) {
			factoryUrl = defaultFactoryUrl;
		}
		this.factoryUrl = defaultFactoryUrl;
	}
	/**
	 * Initialize a part renderer from the extension point.
	 * 
	 * @param context
	 *            the context for the part factories
	 */
	@PostConstruct
	void initialize(IEclipseContext context) {
		this.appContext = context;
		
		KeyFormatterFactory.setDefault(SWTKeySupport
				.getKeyFormatterForPlatform());
		
		context.set(IPresentationEngine.class.getName(), this);
		IRendererFactory factory = null;
		IContributionFactory contribFactory = context