in src/main/java/com/intellij/util/ui/MenuItemLayoutHelper.java [601:628]
private void doLTRComplexLayout(LayoutResult lr, ColumnAlignment alignment) {
lr.labelRect.width = labelSize.maxWidth;
// Set X coordinates
calcXPositionsLTR(viewRect.x, leadingGap, gap, lr.checkRect,
lr.labelRect);
// Tune afterCheckIconGap
if (lr.checkRect.width > 0) { // there is the afterCheckIconGap
lr.labelRect.x += afterCheckIconGap - gap;
}
calcXPositionsRTL(viewRect.x + viewRect.width,
leadingGap, gap, lr.arrowRect, lr.accRect);
// Take into account minimal text offset
int labelOffset = lr.labelRect.x - viewRect.x;
if (!isTopLevelMenu && (labelOffset < minTextOffset)) {
lr.labelRect.x += minTextOffset - labelOffset;
}
alignRects(lr, alignment);
// Center labelRect vertically
calcLabelYPosition(lr);
layoutIconAndTextInLabelRect(lr);
}