From 02cbc261f56cfdcdb108456823e91c9aa9544b40 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Thu, 29 Dec 2011 10:47:37 +0100 Subject: [PATCH] control where to show the popup --- .../src/com/intellij/ui/SpeedSearchBase.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java b/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java index 47cf9f8343c3..a6087b77996e 100644 --- a/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java +++ b/platform/platform-impl/src/com/intellij/ui/SpeedSearchBase.java @@ -517,8 +517,8 @@ public abstract class SpeedSearchBase extends SpeedSear myPopupLayeredPane.add(mySearchPopup, JLayeredPane.POPUP_LAYER); if (myPopupLayeredPane == null) return; // See # 27482. Somewho it does happen... Point lPaneP = myPopupLayeredPane.getLocationOnScreen(); - Point componentP = myComponent.getLocationOnScreen(); - Rectangle r = myComponent.getVisibleRect(); + Point componentP = getComponentLocationOnScreen(); + Rectangle r = getComponentVisibleRect(); Dimension prefSize = mySearchPopup.getPreferredSize(); Window window = (Window)SwingUtilities.getAncestorOfClass(Window.class, myComponent); Point windowP; @@ -539,6 +539,14 @@ public abstract class SpeedSearchBase extends SpeedSear mySearchPopup.validate(); } + protected Rectangle getComponentVisibleRect() { + return myComponent.getVisibleRect(); + } + + protected Point getComponentLocationOnScreen() { + return myComponent.getLocationOnScreen(); + } + private class MyToolWindowManagerListener extends ToolWindowManagerAdapter { public void stateChanged() { manageSearchPopup(null);