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 (candidates != null) {
			for (Iterator<MPart> it = candidates.iterator(); it.hasNext();) {
				MPart part = it.next();
				if (part.getParent() == null) {
					MPlaceholder placeholder = part.getCurSharedRef();
					if (placeholder == null || placeholder.getParent() == null) {
						it.remove();
					}
				}
				return part;
			}
		}
		candidates = perspective.getContext().get(EPartService.class).getParts();
		for (MPart candidate : candidates) {
			if (candidate.isToBeRendered() && candidate.isVisible()) {
				MPlaceholder placeholder = candidate.getCurSharedRef();
				if (placeholder != null) {
					if (!placeholder.isToBeRendered() || !placeholder.isVisible()) {
						continue;
					}
				}
				return candidate;
			}
		}
		return null;
	}
	private MPart getSiblingActivationCandidate(MPart part, MUIElement element,
			Collection<MPart> activationHistory) {
		List<MUIElement> siblings = element.getParent().getChildren();
		for (MPart previouslyActivatedPart : activationHistory) {