Bug 295611 [UI] The MPart tests leave many open shells
This turns out to be caused by the PRE's 'stop' method only working correctly when an MApplication is the 'uiRoot' element.
bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/internal/PartRenderingEngine.java
KeyBindingDispatcher dispatcher = new KeyBindingDispatcher();
				ContextInjectionFactory.inject(dispatcher, appContext);
				org.eclipse.swt.widgets.Listener listener = dispatcher
						.getKeyDownFilter();
				display.addFilter(SWT.KeyDown, listener);
				display.addFilter(SWT.Traverse, listener);
				
				
				
				
				hackShell = null;
				theApp = null;
				boolean spinOnce = true;
				if (uiRoot instanceof MApplication) {
					spinOnce = false; 
					theApp = (MApplication) uiRoot;
					for (MWindow window : theApp.getChildren()) {
						hackShell = (Shell) createGui(window);
					}
				} else if (uiRoot instanceof MUIElement) {
					if (uiRoot instanceof MWindow) {
						hackShell = (Shell) createGui((MUIElement) uiRoot);
					} else {
						
						hackShell = new Shell(display, SWT.SHELL_TRIM);
						createGui((MUIElement) uiRoot, hackShell);
					}
				}