Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java
index 4fcb69f60fe..2c410126466 100644
--- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java
+++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/StackRenderer.java
@@ -1426,11 +1426,22 @@ public class StackRenderer extends LazyStackRenderer implements IPreferenceChang
}
}
- if (closeableElements > 0) {
- new MenuItem(menu, SWT.SEPARATOR);
+ if (isDetachable(part)) {
+ if (closeableElements > 0) {
+ new MenuItem(menu, SWT.SEPARATOR);
+ }
+
+ createMenuItem(menu, SWTRenderersMessages.menuDetach, e -> detachActivePart(menu));
+ }
+ }
+
+ protected boolean isDetachable(MPart part) {
+ // if it's a shared part check its current ref
+ if (part.getCurSharedRef() != null) {
+ return !part.getCurSharedRef().getTags().contains(IPresentationEngine.NO_DETACH);
}
- createMenuItem(menu, SWTRenderersMessages.menuDetach, e -> detachActivePart(menu));
+ return !part.getTags().contains(IPresentationEngine.NO_DETACH);
}
/**

Back to the top