RelativePoint (@NotNull Balloon balloon) { Component c = getAnchor(pane); int y = c.getHeight() - JBUIScale.scale(45); BalloonLayoutImpl balloonLayout = getBalloonLayout(pane); if (balloonLayout != null && !isBottomSideToolWindowsVisible(pane)) { Component component = balloonLayout.getTopBalloonComponent(); if (component != null) { y = SwingUtilities.convertPoint(component, 0, -JBUIScale.scale(45), c).y; } } if (myVisible > 1) { int index = myIndicators.indexOf(indicator); int rowHeight = balloon.getPreferredSize().height + JBUI.scale(5); y -= rowHeight * (myVisible - index - 1); } return new RelativePoint(c, new Point(c.getWidth() - JBUIScale.scale(150), y)); }