Interim fix for Bug 335050 - Shared area becomes destroyed after splitting vertically and then splitting the bottom part horizontally
diff --git a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java
index f301c2a..a06e522 100644
--- a/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java
+++ b/bundles/org.eclipse.e4.ui.workbench.addons.swt/src/org/eclipse/e4/ui/workbench/addons/cleanupaddon/CleanupAddon.java
@@ -32,6 +32,7 @@
import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
import org.eclipse.e4.ui.workbench.UIEvents;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.renderers.swt.SashLayout;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
@@ -106,6 +107,20 @@
.getParent();
if (parentContainer != null) {
int index = parentContainer.getChildren().indexOf(container);
+
+ // Magic check, are we unwrapping a sash container
+ if (theChild instanceof MPartSashContainer) {
+ if (container.getWidget() instanceof Composite) {
+ Composite theComp = (Composite) container.getWidget();
+ Object tmp = theChild.getWidget();
+ theChild.setWidget(theComp);
+ theComp.setLayout(new SashLayout(theComp, theChild));
+ theComp.setData(AbstractPartRenderer.OWNING_ME,
+ theChild);
+ container.setWidget(tmp);
+ }
+ }
+
theChild.setContainerData(container.getContainerData());
container.getChildren().remove(theChild);
parentContainer.getChildren().add(index, theChild);