Bug 331038 [UI] Cache and restore the Shell's state across sessions
Currently hitting the maximize button on the shell will cause it to become maximized during the life of the session but if you close down and restart the shell just sizes itself to occupy the whole screen, the shell's state is not set. Quite annoying since you can then accidentally move or size what *should be* a maximized shell.
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/WBWRenderer.java
@Inject
	private IEclipseContext context;
	private void applyDialogStyles(Control control) {
		IStylingEngine engine = (IStylingEngine) context
				.get(IStylingEngine.SERVICE_NAME);
		if (engine != null) {
			Shell shell = control.getShell();
			if (shell.getBackgroundMode() == SWT.INHERIT_NONE) {
				shell.setBackgroundMode(SWT.INHERIT_DEFAULT);
			}
			engine.style(shell);
		}
	}
	class SaveablePartPromptDialog extends Dialog {
		private Collection<MPart> collection;
		private CheckboxTableViewer tableViewer;
		private Object[] checkedElements = new Object[0];
		SaveablePartPromptDialog(Shell shell, Collection<MPart> collection) {
			super(shell);
			this.collection = collection;
		}
		@Override
		protected Control createDialogArea(Composite parent) {
			parent = (Composite) super.createDialogArea(parent);
			Label label = new Label(parent, SWT.LEAD);
			label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
			label.setText("Select the parts to save:"); 
			tableViewer = CheckboxTableViewer.newCheckList(parent, SWT.SINGLE
					| SWT.BORDER);
			GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);