summaryrefslogtreecommitdiffstats
path: root/src/plugins/styles/mac/qmacstyle_mac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/styles/mac/qmacstyle_mac.mm')
-rw-r--r--src/plugins/styles/mac/qmacstyle_mac.mm18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm
index 95809906c1..5999163c91 100644
--- a/src/plugins/styles/mac/qmacstyle_mac.mm
+++ b/src/plugins/styles/mac/qmacstyle_mac.mm
@@ -1675,13 +1675,13 @@ QRectF QMacStylePrivate::comboboxEditBounds(const QRectF &outerBounds, const Coc
} else if (cw.type == Button_PopupButton) {
switch (cw.size) {
case QStyleHelper::SizeLarge:
- ret.adjust(14, 1, -23, -4);
+ ret.adjust(10, 1, -23, -4);
break;
case QStyleHelper::SizeSmall:
- ret.adjust(13, 4, -20, -3);
+ ret.adjust(10, 4, -20, -3);
break;
case QStyleHelper::SizeMini:
- ret.adjust(12, 0, -19, 0);
+ ret.adjust(9, 0, -19, 0);
ret.setHeight(13);
break;
default:
@@ -2826,7 +2826,8 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai
#if QT_CONFIG(toolbutton)
if (const QToolButton *tb = qobject_cast<const QToolButton *>(w)) {
// When stroking the arrow, make sure it fits in the tool button
- if (tb->arrowType() != Qt::NoArrow)
+ if (tb->arrowType() != Qt::NoArrow
+ || tb->popupMode() == QToolButton::MenuButtonPopup)
halfSize -= penWidth;
}
#endif
@@ -5865,11 +5866,11 @@ QRect QMacStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *op
#endif
case CC_ToolButton:
ret = QCommonStyle::subControlRect(cc, opt, sc, widget);
- if (sc == SC_ToolButtonMenu
+ if (sc == SC_ToolButtonMenu) {
#ifndef QT_NO_ACCESSIBILITY
- && !QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar)
+ if (QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar))
+ ret.adjust(-toolButtonArrowMargin, 0, 0, 0);
#endif
- ) {
ret.adjust(-1, 0, 0, 0);
}
break;
@@ -6107,6 +6108,9 @@ QSize QMacStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt,
case CT_ToolButton:
sz.rwidth() += 10;
sz.rheight() += 10;
+ if (const auto *tb = qstyleoption_cast<const QStyleOptionToolButton *>(opt))
+ if (tb->features & QStyleOptionToolButton::Menu)
+ sz.rwidth() += toolButtonArrowMargin;
return sz;
case CT_ComboBox:
if (const auto *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {