From cee2d1283ae12e454639a65fa7258aacaec35ee7 Mon Sep 17 00:00:00 2001 From: Kirill Kalishev Date: Mon, 13 Dec 2010 19:13:53 +0300 Subject: [PATCH] [10.0.1] Toolwindow title bar paiting fix (active/inactive) --- .../src/com/intellij/openapi/wm/impl/FocusManagerImpl.java | 3 ++- .../src/com/intellij/openapi/wm/impl/InternalDecorator.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java index 398baa454972..04ffad38f33b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/FocusManagerImpl.java @@ -114,7 +114,8 @@ public class FocusManagerImpl extends IdeFocusManager implements Disposable { final Component c = fe.getComponent(); if (c instanceof Window || c == null) return false; - Component parent = UIUtil.findUltimateParent(c); + Component parent = SwingUtilities.getWindowAncestor(c); + if (parent instanceof IdeFrame) { myLastFocused.put((IdeFrame)parent, new WeakReference(c)); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java index 62aafc8fc636..0e74bed98051 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/InternalDecorator.java @@ -176,10 +176,12 @@ public final class InternalDecorator extends JPanel implements Queryable, TypeSa } public boolean isFocused() { - Component component = IdeFocusManager.getInstance(myProject).getFocusedDescendantFor(myToolWindow.getComponent()); + IdeFocusManager fm = IdeFocusManager.getInstance(myProject); + Component component = fm.getFocusedDescendantFor(myToolWindow.getComponent()); if (component != null) return true; - Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); + Component owner = fm.getLastFocusedFor(WindowManager.getInstance().getIdeFrame(myProject)); + return owner != null && SwingUtilities.isDescendingFrom(owner, myToolWindow.getComponent()); }