public void updateBounds(final @NotNull BalloonImpl balloon) {
      if (balloon.myLayeredPane == null || balloon.component == null) return;

      Insets shadow = balloon.component.getInsets();
      Dimension prefSize = balloon.component.getPreferredSize();
      JBInsets.removeFrom(prefSize, shadow);
      Rectangle bounds = getUpdatedBounds(balloon, prefSize, shadow);

      if (balloon.myShadowBorderProvider == null && balloon.myForcedBounds != null) {
        bounds = new Rectangle(getShiftedPoint(bounds.getLocation(), balloon.getShadowBorderInsets()), bounds.getSize());
      }
      balloon.component._setBounds(bounds);
    }
public void updateBounds(final @NotNull BalloonImpl balloon)