Bug 327765 EPartService will hide a part of another perspective
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartActivationHistory.java
if (previouslyActivatedPart != part && previouslyActivatedPart.isToBeRendered()) {
				if (siblings.contains(previouslyActivatedPart)) {
					return previouslyActivatedPart;
				}
				MPlaceholder placeholder = previouslyActivatedPart.getCurSharedRef();
				if (placeholder != null && placeholder.isToBeRendered()
						&& siblings.contains(placeholder)) {
					return previouslyActivatedPart;
				}
			}
		}
		return null;
	}
	private LinkedList<MPart> getPerspectiveActivationHistory(MPart part) {
		MPlaceholder placeholder = part.getCurSharedRef();
		MUIElement parent = placeholder == null ? part.getParent() : placeholder.getParent();
		while (parent != null) {
			if (parent instanceof MPerspective) {
				LinkedList<MPart> history = perspectiveActivationHistories.get(parent);
				if (history == null) {
					history = new LinkedList<MPart>();
					perspectiveActivationHistories.put(parent, history);
				}
				return history;
			} else if (parent instanceof MWindow) {
				MUIElement windowParent = parent.getParent();
				if (windowParent instanceof MApplication) {
					return null;
				}
				parent = windowParent;