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 (parent == null) {
				return false;
			}
		}
		return isValid(perspective, parent);
	}
	/**
	 * Determines whether this element is contained within an MArea, and to return the area if it
	 * is.
	 */
	private MArea isInArea(MUIElement element) {
		MPlaceholder placeholder = element.getCurSharedRef();
		MUIElement parent = placeholder == null ? element.getParent() : placeholder.getParent();
		return parent instanceof MApplication ? null : parent instanceof MArea ? (MArea) parent
				: isInArea(parent);
	}
	/**
	 * Finds and returns a part that is a valid candidate to be granted activation.
	 */
	private MPart getActivationCandidate(MPart part) {
		
		Collection<MPart> candidates = part.getContext().get(EPartService.class).getParts();
		for (MPart candidate : candidates) {
			
			if (part != candidate && candidate.isToBeRendered() && candidate.isVisible()) {
				MPlaceholder placeholder = candidate.getCurSharedRef();
				if (placeholder != null) {
					
					if (!placeholder.isToBeRendered() || !placeholder.isVisible()) {
						continue;