Bug 344044 [Compatibility] Action bars must be deactivated when its parent part gets disposed
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 f697eea..8960bfd 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
@@ -175,9 +175,10 @@
Object client = part.getObject();
if (client instanceof CompatibilityPart) {
- PartSite site = (PartSite) ((CompatibilityPart) client).getPart().getSite();
+ CompatibilityPart compatibilityPart = (CompatibilityPart) client;
+ IWorkbenchPartSite site = compatibilityPart.getPart().getSite();
// if it's an editor, we only want to disable the actions
- site.deactivateActionBars(site instanceof ViewSite);
+ compatibilityPart.deactivateActionBars(site instanceof ViewSite);
}
((WorkbenchWindow) getWorkbenchWindow()).getStatusLineManager().update(false);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
index 26fd481..a268d2d 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/e4/compatibility/CompatibilityPart.java
@@ -37,6 +37,7 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.internal.PartSite;
import org.eclipse.ui.internal.SaveableHelper;
+import org.eclipse.ui.internal.ViewSite;
import org.eclipse.ui.internal.WorkbenchPage;
import org.eclipse.ui.internal.WorkbenchPartReference;
import org.eclipse.ui.internal.WorkbenchPlugin;
@@ -267,6 +268,11 @@
});
}
+ public void deactivateActionBars(boolean forceHide) {
+ PartSite site = getReference().getSite();
+ site.deactivateActionBars(forceHide);
+ }
+
@PreDestroy
void destroy() {
if (!alreadyDisposed) {
@@ -284,6 +290,7 @@
void disposeSite() {
PartSite site = getReference().getSite();
if (site != null) {
+ deactivateActionBars(site instanceof ViewSite);
site.dispose();
}
}