diff --git a/platform/platform-api/src/com/intellij/ui/components/breadcrumbs/Breadcrumbs.java b/platform/platform-api/src/com/intellij/ui/components/breadcrumbs/Breadcrumbs.java index d8e478989abf..50c026a2b324 100644 --- a/platform/platform-api/src/com/intellij/ui/components/breadcrumbs/Breadcrumbs.java +++ b/platform/platform-api/src/com/intellij/ui/components/breadcrumbs/Breadcrumbs.java @@ -339,6 +339,10 @@ public class Breadcrumbs extends JComponent implements RegionPainter { return insets; } + private static int getGap(Component component) { + return 10 * getScale(component); + } + private static int getScale(Component component) { return component == null ? 1 : getScale(component.getFont()); } @@ -366,7 +370,9 @@ public class Breadcrumbs extends JComponent implements RegionPainter { @Override public Dimension preferredLayoutSize(Container container) { - Dimension size = getPreferredSize(getComponents(container, Breadcrumbs::toVisible)); + ArrayList components = getComponents(container, Breadcrumbs::toVisible); + Dimension size = getPreferredSize(components); + size.width += components.size() * getGap(container); if (size.height == 0) size.height = getPreferredHeight(container); JBInsets.addTo(size, container.getInsets()); return size; @@ -387,7 +393,7 @@ public class Breadcrumbs extends JComponent implements RegionPainter { else /*if (bounds.width < size.width) { } else*/ { - int gap = Math.max(0, Math.min(10 * getScale(container), (bounds.width - size.width) / (count - 1))); + int gap = getGap(container); for (Component component : components) { Dimension preferred = component.getPreferredSize(); component.setBounds(bounds.x, bounds.y, preferred.width, bounds.height);