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