Fix for 42684
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewPane.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewPane.java
index e494587..66bf8f2 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewPane.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewPane.java
@@ -351,6 +351,15 @@
}
public void dispose() {
super.dispose();
+
+ /* Bug 42684. The ViewPane instance has been disposed, but an attempt is
+ * then made to remove focus from it. This happens because the ViewPane is
+ * still viewed as the active part. In general, when disposed, the control
+ * containing the titleLabel will also disappear (disposing of the
+ * titleLabel). As a result, the reference to titleLabel should be dropped.
+ */
+ titleLabel = null;
+
if (isvMenuMgr != null)
isvMenuMgr.dispose();
if (isvToolBarMgr != null)
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
index b7118b8..0c0764f 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java
@@ -1658,6 +1658,14 @@
firePartClosed(ref);
disposePart(ref);
activationList.remove(ref);
+
+ /* Bug 42684. A ViewPane instance has been disposed, but an attempt is
+ * then made to remove focus from it. This happens because the ViewPane
+ * is still viewed as the active part. The activePart should always be
+ * modified when the view is changed. activePart isn't really needed
+ * anymore (see declaration).
+ */
+ activePart = activationList.getActive();
}
// Notify interested listeners