From 2852e10076bb27b469d984c5feeceb8b3c9e15c8 Mon Sep 17 00:00:00 2001 From: Max Schenkelberg Date: Tue, 29 Jan 2013 17:33:11 -0600 Subject: [PATCH] Issue #1541 Fixed tool activation so always happens in part activated/deactivated listener. Change-Id: I515bfe867c4ad9c74280173badae408d0ee5dab9 Former-commit-id: 4fae8540060e860d6922603b45f6b0c0b01b891c [formerly 4fae8540060e860d6922603b45f6b0c0b01b891c [formerly c0f98136403a05755d1c7c640f264f1bafe64a4f]] Former-commit-id: ad37f6853745bb3677796f3c9044de70d3014213 Former-commit-id: 9d2a960cb4c31a408a75f167502fb81121d5765b --- .../AbstractVizPerspectiveManager.java | 20 +++++++++++++------ .../viz/ui/tools/AbstractModalTool.java | 1 + 2 files changed, 15 insertions(+), 6 deletions(-) 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; } }