Bug 500582 - The toBeRenderer flag of Top-Level windows needs to be set
diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java
index 6ec8ed7..b86ca0f 100755
--- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java
+++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseWindowRenderer.java
@@ -14,6 +14,7 @@
import java.util.Collection;
import java.util.Collections;
import java.util.List;
+import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
@@ -317,8 +318,15 @@
// if we don't we see strange invalid context types sticking
// around in PartRenderingEngine.clearContext
MWindow element = param.getDomElement();
- if (element != null && !((MApplicationElement) element.getParent() instanceof MApplication)) {
- element.setToBeRendered(false);
+ if (element != null) {
+ if( !((MApplicationElement) element.getParent() instanceof MApplication) ) {
+ // If this is not a top level hide it
+ element.setToBeRendered(false);
+ } else {
+ if( element.getParent().getChildren().stream().filter( c -> c.isToBeRendered() ).count() > 1 ) {
+ element.setToBeRendered(false);
+ }
+ }
}
if (element != null && shouldRemoveWindowFromModel(element)) {