Bug 319169 [UI] active parts in Detached windows prevent activating a part in the main window
Start with a fresh WS Detach the Outline view using DnD Now you can no longer activate any part in the main window (i.e. Package Explorer). The cause seems to be that the 'rootContainer' has become the DW's MTrimmedWindow rather than the DW's containing MPerspective. This causes the PartService's 'activate' to fail the 'isInContainer()' test...
tests/org.eclipse.e4.ui.tests/src/org/eclipse/e4/ui/tests/application/EPartServiceTest.java
testSaveAll(new Save[] { Save.CANCEL, Save.CANCEL }, false,
				new boolean[] { false, false }, new boolean[] { false, false });
	}
	private void testSaveAll_NoHandler(boolean beforeDirty,
			boolean throwException, boolean confirm) {
		MApplication application = ApplicationFactoryImpl.eINSTANCE
				.createApplication();
		MWindow window = BasicFactoryImpl.eINSTANCE.createWindow();
		application.getChildren().add(window);
		MPart saveablePart = BasicFactoryImpl.eINSTANCE.createPart();
		saveablePart.setDirty(beforeDirty);
		saveablePart
				.setContributionURI("platform:/plugin/org.eclipse.e4.ui.tests/org.eclipse.e4.ui.tests.application.ClientEditor");
		window.getChildren().add(saveablePart);
		initialize(applicationContext, application);
		getEngine().createGui(window);
		ClientEditor editor = (ClientEditor) saveablePart.getObject();
		editor.setThrowException(throwException);
		
		applicationContext.set(ISaveHandler.class.getName(), null);
		EPartService partService = (EPartService) window.getContext().get(
				EPartService.class.getName());
		if (beforeDirty) {
			assertEquals(!throwException, partService.saveAll(confirm));
		} else {
			assertTrue(
					"The part is not dirty, the save operation should have complete successfully",
					partService.saveAll(confirm));
		}
		assertEquals(beforeDirty && throwException, saveablePart.isDirty());