protected void layoutLabels(final SingleRowPassInfo data) {
    boolean layoutStopped = false;
    for (TabInfo eachInfo : data.toLayout) {
      final TabLabel label = tabs.getTabLabel(eachInfo);
      if (layoutStopped) {
        Rectangle rec = getStrategy().getLayoutRect(data, 0, 0);
        tabs.layout(Objects.requireNonNull(label), rec);
        continue;
      }

      final Dimension eachSize = Objects.requireNonNull(label).getPreferredSize();

      int length = getStrategy().getLengthIncrement(eachSize);
      boolean continueLayout = applyTabLayout(data, label, length);

      data.position = getStrategy().getMaxPosition(label.getBounds());
      data.position += tabs.getTabHGap();

      if (!continueLayout) {
        layoutStopped = true;
      }
    }

    for (TabInfo eachInfo : data.toDrop) {
      JBTabsImpl.Companion.resetLayout(tabs.getTabLabel(eachInfo));
    }
  }
protected void layoutLabels(final SingleRowPassInfo data)