diff --git a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/perspectives/AbstractVizPerspectiveManager.java b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/perspectives/AbstractVizPerspectiveManager.java index 5636abbd62..779fd25940 100644 --- a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/perspectives/AbstractVizPerspectiveManager.java +++ b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/perspectives/AbstractVizPerspectiveManager.java @@ -136,6 +136,20 @@ public abstract class AbstractVizPerspectiveManager implements @Override public void partDeactivated(IWorkbenchPart part) { + // update editor on last selected modal tool + if (part instanceof IEditorPart + && part instanceof IDisplayPaneContainer) { + AbstractVizPerspectiveManager mgr = VizPerspectiveListener + .getCurrentPerspectiveManager(); + if (mgr != null) { + for (AbstractModalTool tool : mgr.getToolManager() + .getSelectedModalTools()) { + if (tool.getCurrentEditor() == part) { + tool.deactivate(); + } + } + } + } } @Override @@ -362,12 +376,6 @@ public abstract class AbstractVizPerspectiveManager implements page.hideEditor(ref); } - for (AbstractModalTool tool : toolManager.getSelectedModalTools()) { - if (tool != null) { - tool.deactivate(); - } - } - deactivateDialogs(); deactivateContexts(); removeFromStatusLine(); diff --git a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/tools/AbstractModalTool.java b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/tools/AbstractModalTool.java index 450b1860df..64da65bfb4 100644 --- a/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/tools/AbstractModalTool.java +++ b/cave/com.raytheon.viz.ui/src/com/raytheon/viz/ui/tools/AbstractModalTool.java @@ -156,6 +156,7 @@ public abstract class AbstractModalTool extends AbstractTool { this.setEnabled(false); if (editor != null) { deactivateTool(); + editor = null; } }