Skip to content

Commit e0d5976

Browse files
praveen-skpmerks
authored andcommitted
Improve 'EditorStack' detection in CTabRendering
Enhance tab identification by including a check for tabs located within the editor area, even when the 'EditorStack' tag is absent.
1 parent e630919 commit e0d5976

File tree

1 file changed

+13
-3
lines changed
  • bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt

1 file changed

+13
-3
lines changed

bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/CTabRendering.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@
2727
import org.eclipse.core.runtime.preferences.InstanceScope;
2828
import org.eclipse.e4.ui.internal.css.swt.ICTabRendering;
2929
import org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer;
30+
import org.eclipse.e4.ui.model.application.ui.MContext;
3031
import org.eclipse.e4.ui.model.application.ui.MUIElement;
32+
import org.eclipse.e4.ui.workbench.modeling.EModelService;
33+
import org.eclipse.emf.ecore.EObject;
34+
import org.eclipse.emf.ecore.util.EcoreUtil;
3135
import org.eclipse.swt.SWT;
3236
import org.eclipse.swt.custom.CTabFolder;
3337
import org.eclipse.swt.custom.CTabFolderRenderer;
@@ -89,8 +93,6 @@ public class CTabRendering extends CTabFolderRenderer implements ICTabRendering,
8993
private static int MIN_VIEW_CHARS = 1;
9094
private static int MAX_VIEW_CHARS = 9999;
9195

92-
private static final String EditorTag = "EditorStack"; //$NON-NLS-1$
93-
9496
// Constants for circle drawing
9597
static enum CirclePart {
9698
LEFT_TOP, LEFT_BOTTOM, RIGHT_TOP, RIGHT_BOTTOM;
@@ -1330,7 +1332,15 @@ private IEclipsePreferences getSwtRendererPreferences() {
13301332

13311333
private boolean isPartOfEditorStack() {
13321334
MUIElement element = (MUIElement) parent.getData(AbstractPartRenderer.OWNING_ME);
1333-
return element != null && element.getTags().contains(EditorTag);
1335+
EObject root = EcoreUtil.getRootContainer((EObject) element, true);
1336+
if (root instanceof MContext context) {
1337+
EModelService eModelService = context.getContext().get(EModelService.class);
1338+
if (eModelService != null) {
1339+
int location = eModelService.getElementLocation(element);
1340+
return (location & EModelService.IN_SHARED_AREA) != 0;
1341+
}
1342+
}
1343+
return false;
13341344
}
13351345

13361346
private boolean getHideIconsForViewTabsPreference() {

0 commit comments

Comments
 (0)