diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index f5981da459..9673cf5f78 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -5436,6 +5436,11 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op drawCheckMark = false; // ignore the checkmarks provided by the QComboMenuDelegate #endif QSize sz(csz); + if (subRule.hasFont) { + QFontMetrics fm(subRule.font.resolve(mi->font)); + const QRect r = fm.boundingRect(QRect(), Qt::TextSingleLine | Qt::TextShowMnemonic, mi->text); + sz = sz.expandedTo(r.size()); + } if (mi->text.contains(u'\t')) sz.rwidth() += 12; //as in QCommonStyle if (!mi->icon.isNull()) { @@ -5449,11 +5454,6 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op } else { sz.rwidth() += mi->maxIconWidth; } - if (subRule.hasFont) { - QFontMetrics fm(subRule.font.resolve(mi->font)); - const QRect r = fm.boundingRect(QRect(), Qt::TextSingleLine | Qt::TextShowMnemonic, mi->text); - sz = sz.expandedTo(r.size()); - } return subRule.boxSize(subRule.adjustSize(sz)); } }