diff options
author | Bogdan Gheorghe | 2011-12-01 22:33:30 +0000 |
---|---|---|
committer | Bogdan Gheorghe | 2011-12-01 22:33:30 +0000 |
commit | fd7f397dcfa200fcbd43232a47b33f06fc650402 (patch) | |
tree | becaa965a3bab828c88169761d05f2e1b706ffe5 | |
parent | 0d6cd94911dcb221379022563d11ed7f4c71ff91 (diff) | |
download | eclipse.platform.ui-fd7f397dcfa200fcbd43232a47b33f06fc650402.tar.gz eclipse.platform.ui-fd7f397dcfa200fcbd43232a47b33f06fc650402.tar.xz eclipse.platform.ui-fd7f397dcfa200fcbd43232a47b33f06fc650402.zip |
351366 - Allow the hosting of Views and Editors independent of the presentationv20111201-2233I20111201-2015
2 files changed, 9 insertions, 2 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ModelServiceImpl.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ModelServiceImpl.java index 316a9def6c9..c2b096d5f2d 100644 --- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ModelServiceImpl.java +++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/ModelServiceImpl.java @@ -1052,8 +1052,13 @@ public class ModelServiceImpl implements EModelService { */ public boolean isHostedElement(MUIElement element, MWindow hostWindow) { MUIElement curElement = element; - while (curElement != null && !curElement.getTags().contains(HOSTED_ELEMENT)) - curElement = curElement.getParent(); + while (curElement != null && !curElement.getTags().contains(HOSTED_ELEMENT)) { + if (curElement.getCurSharedRef() != null) { + curElement = curElement.getCurSharedRef(); + } else { + curElement = curElement.getParent(); + } + } if (curElement == null) return false; diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java index 919695cad06..8b452d32686 100644 --- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java +++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java @@ -405,6 +405,8 @@ public class PartServiceImpl implements EPartService { } private boolean isInContainer(MUIElement element) { + if (modelService.isHostedElement(element, getWindow())) + return true; List<MUIElement> allPerspectiveElements = modelService.findElements(workbenchWindow, null, MUIElement.class, null, EModelService.PRESENTATION); return allPerspectiveElements.contains(element); |