From d6df8742e84e625e7f78142adaaa0bb4faed1141 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 24 Mar 2011 11:39:58 +0100 Subject: [PATCH] correct balloon place --- .../introduceVariable/VariableInplaceIntroducer.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java b/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java index e421ee9c60a4..890fae8445d1 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceVariable/VariableInplaceIntroducer.java @@ -52,6 +52,7 @@ import com.intellij.refactoring.ui.TypeSelectorManagerImpl; import com.intellij.ui.NonFocusableCheckBox; import com.intellij.ui.TitlePanel; import com.intellij.ui.awt.RelativePoint; +import com.intellij.util.ui.PositionTracker; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -362,8 +363,11 @@ public class VariableInplaceIntroducer extends VariableInplaceRenamer { final RelativePoint target = JBPopupFactory.getInstance().guessBestPopupLocation(myEditor); final Point screenPoint = target.getScreenPoint(); myBalloon = balloonBuilder.createBalloon(); - myBalloon - .show(new RelativePoint(new Point(screenPoint.x, screenPoint.y - myEditor.getLineHeight())), Balloon.Position.above); + int y = screenPoint.y; + if (target.getPoint().getY() > myEditor.getLineHeight() + myBalloon.getPreferredSize().getHeight()) { + y -= myEditor.getLineHeight(); + } + myBalloon.show(new RelativePoint(new Point(screenPoint.x, y)), Balloon.Position.above); } public class FinalListener implements ActionListener {