Bug 332964 - Added check for active page of MultiPageEditorPart
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorInternal.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorInternal.java
index 933770c..98076e7 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorInternal.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorInternal.java
@@ -144,6 +144,7 @@
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.part.MultiPageEditorPart;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
@@ -1414,9 +1415,16 @@
// Check if we are a page of the active multipage editor
IEditorPart activeEditor = getSite().getPage().getActiveEditor();
if (activeEditor != null) {
- // Open: unfortunately it seems not to be possible to check if
- // we are the currently active page of that multipage editor
+ // Check if the top level editor if it is active
editorIsActive = getSite().getPage().isPartVisible(activeEditor);
+ if (activeEditor instanceof MultiPageEditorPart) {
+ Object selectedPage = ((MultiPageEditorPart) activeEditor).getSelectedPage();
+ if (!(selectedPage instanceof DiagramEditorInternal)) {
+ // Editor is active but the diagram sub editor is not
+ // its active page
+ editorIsActive = false;
+ }
+ }
}
}
if (editorIsActive) {