private void adjustForVSB(Rectangle bounds,
                              Insets insets,
                              Rectangle vsbBounds,
                              boolean vsbRequiresSpace,
                              boolean vsbOnLeft,
                              boolean vsbOverlapping,
                              @NotNull Rectangle wholePaneBounds) {
      vsbBounds.width = vsb.isEnabled() ? min(bounds.width, vsb.getPreferredSize().width) : 0;
      if (vsbOnLeft) {
        if (vsbOverlapping) {
          vsbBounds.x = 0;
        }
        else {
          vsbBounds.x = bounds.x - insets.left/* + vsbBounds.width*/;
        }
        if (vsbRequiresSpace) bounds.x += vsbBounds.width;
      }
      else if (vsbOverlapping) {
        vsbBounds.x = wholePaneBounds.x + wholePaneBounds.width - vsbBounds.width;
      }
      else {
        vsbBounds.x = bounds.x + bounds.width + insets.right - vsbBounds.width;
      }
      if (vsbRequiresSpace) bounds.width -= vsbBounds.width;
    }
private void adjustForVSB(Rectangle bounds,
                              Insets insets,
                              Rectangle vsbBounds,
                              boolean vsbRequiresSpace,
                              boolean vsbOnLeft,
                              boolean vsbOverlapping,
                              @NotNull Rectangle wholePaneBounds)