### Eclipse Workspace Patch 1.0 #P org.eclipse.ui.workbench Index: Eclipse UI/org/eclipse/ui/internal/ViewStack.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ViewStack.java,v retrieving revision 1.29 diff -u -r1.29 ViewStack.java --- Eclipse UI/org/eclipse/ui/internal/ViewStack.java 13 Sep 2007 12:35:13 -0000 1.29 +++ Eclipse UI/org/eclipse/ui/internal/ViewStack.java 6 Feb 2009 03:32:54 -0000 @@ -108,7 +108,7 @@ return !perspective.isFixedLayout(); } - protected void updateActions(PresentablePart current) { + public void updateActions(PresentablePart current) { ViewPane pane = null; if (current != null && current.getPane() instanceof ViewPane) { Index: Eclipse UI/org/eclipse/ui/internal/PartStack.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/PartStack.java,v retrieving revision 1.105 diff -u -r1.105 PartStack.java --- Eclipse UI/org/eclipse/ui/internal/PartStack.java 24 Mar 2008 19:21:57 -0000 1.105 +++ Eclipse UI/org/eclipse/ui/internal/PartStack.java 6 Feb 2009 03:32:54 -0000 @@ -1213,7 +1213,7 @@ * Subclasses should override this method to update the enablement state of their * actions */ - protected abstract void updateActions(PresentablePart current); + public abstract void updateActions(PresentablePart current); /* (non-Javadoc) * @see org.eclipse.ui.internal.LayoutPart#handleDeferredEvents() Index: Eclipse UI/org/eclipse/ui/internal/EditorStack.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/EditorStack.java,v retrieving revision 1.28 diff -u -r1.28 EditorStack.java --- Eclipse UI/org/eclipse/ui/internal/EditorStack.java 9 Apr 2007 20:41:35 -0000 1.28 +++ Eclipse UI/org/eclipse/ui/internal/EditorStack.java 6 Feb 2009 03:32:54 -0000 @@ -116,7 +116,7 @@ } } - protected void updateActions(PresentablePart current) { + public void updateActions(PresentablePart current) { EditorPane pane = null; if (current != null && current.getPane() instanceof EditorPane) { pane = (EditorPane) current.getPane(); Index: Eclipse UI/org/eclipse/ui/internal/presentations/util/TabbedStackPresentation.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/presentations/util/TabbedStackPresentation.java,v retrieving revision 1.20 diff -u -r1.20 TabbedStackPresentation.java --- Eclipse UI/org/eclipse/ui/internal/presentations/util/TabbedStackPresentation.java 22 Nov 2007 17:38:13 -0000 1.20 +++ Eclipse UI/org/eclipse/ui/internal/presentations/util/TabbedStackPresentation.java 6 Feb 2009 03:32:54 -0000 @@ -27,11 +27,13 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IMemento; import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.internal.PartStack; import org.eclipse.ui.internal.preferences.IDynamicPropertyMap; import org.eclipse.ui.internal.preferences.PreferenceStoreAdapter; import org.eclipse.ui.internal.preferences.PreferencesAdapter; import org.eclipse.ui.internal.preferences.PropertyMapAdapter; import org.eclipse.ui.internal.preferences.ThemeManagerAdapter; +import org.eclipse.ui.internal.presentations.PresentablePart; import org.eclipse.ui.internal.presentations.defaultpresentation.DefaultPartList; import org.eclipse.ui.internal.util.PrefUtil; import org.eclipse.ui.presentations.IPartMenu; @@ -486,7 +488,9 @@ public void showSystemMenu(Point displayCoordinates, IPresentablePart context) { if (context != getSite().getSelectedPart()) { - getSite().selectPart(context); + PresentablePart part = (PresentablePart) context; + PartStack stack = part.getPane().getStack(); + stack.updateActions(part); } systemMenu.show(getControl(), displayCoordinates, context); }