From 8e1925b24eddb93dc6028dc8ea011e5da358f623 Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Fri, 23 Oct 2015 22:55:48 +0300 Subject: [PATCH] IDEA-146684 not hiding Tool Window --- .../intellij/openapi/wm/impl/ToolWindowManagerImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java index 22ff742f9025..41885d1cd823 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowManagerImpl.java @@ -76,6 +76,7 @@ import javax.swing.*; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; import java.awt.*; +import java.awt.event.FocusEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.awt.event.WindowEvent; @@ -2262,7 +2263,13 @@ public final class ToolWindowManagerImpl extends ToolWindowManagerEx implements final KeyboardFocusManager mgr = KeyboardFocusManager.getCurrentKeyboardFocusManager(); final Component owner = mgr.getFocusOwner(); - if (owner instanceof EditorComponentImpl) return; + if (owner instanceof EditorComponentImpl && cause instanceof FocusEvent) { + JFrame frame = WindowManager.getInstance().getFrame(myProject); + Component oppositeComponent = ((FocusEvent)cause).getOppositeComponent(); + if (oppositeComponent != null && UIUtil.getWindow(oppositeComponent) != frame) { + return; + } + } IdeFocusManager.getInstance(myProject).doWhenFocusSettlesDown(new ExpirableRunnable.ForProject(myProject) { @Override