I solved this by creating a custom renderer, which basically renders an MPartSashContainer as a custom SashLayout. This all works even when using the compatibility layer / 4.2!
class FixedSashRendererFactory extends WorkbenchRendererFactory {
private FixedSashRenderer renderer;
@Override
public AbstractPartRenderer getRenderer(MUIElement uiElement, Object parent) {
if (uiElement instanceof MPartSashContainer) {
if (renderer == null) {
renderer = new FixedSashRenderer();
initRenderer(renderer);
}
return renderer;
}
return super.getRenderer(uiElement, parent);
}
}
//copied from SashRenderer, now instantiates FixedSashLayout instead of SashLayout
class FixedSashRenderer extends SWTPartRenderer
//copied from SashLayout, removed MouseMoveListener and MouseListener
class FixedSashLayout extends Layout