Details
-
Bug
-
Resolution: Duplicate
-
P3: Somewhat important
-
None
-
4.7.1
-
None
Description
The size of a QPushButton is wrong when a fixed size is applied with the width of the button is > 50 and the height is > 30.
Included a test case to reproduce
Suggested workaround/patch
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm index 128d6bf..c067a64 100644 --- a/src/gui/styles/qmacstyle_mac.mm +++ b/src/gui/styles/qmacstyle_mac.mm @@ -3398,10 +3404,17 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter // the focus 'shadow' will be inside. HIRect newRect = qt_hirectForQRect(btn->rect); if (bdi.kind == kThemePushButton || bdi.kind == kThemePushButtonSmall) { - newRect.origin.x += QMacStylePrivate::PushButtonLeftOffset; - newRect.origin.y += QMacStylePrivate::PushButtonTopOffset; - newRect.size.width -= QMacStylePrivate::PushButtonRightOffset; - newRect.size.height -= QMacStylePrivate::PushButtonBottomOffset; + if (w->minimumWidth() != w->maximumWidth()) + { + newRect.origin.x += QMacStylePrivate::PushButtonLeftOffset; + newRect.size.width -= QMacStylePrivate::PushButtonRightOffset; + } + if (w->minimumHeight() != w->maximumHeight()) + { + newRect.origin.y += QMacStylePrivate::PushButtonTopOffset; + newRect.size.height -= QMacStylePrivate::PushButtonBottomOffset; + } } else if (bdi.kind == kThemePushButtonMini) { newRect.origin.x += QMacStylePrivate::PushButtonLeftOffset - 2; newRect.origin.y += QMacStylePrivate::PushButtonTopOffset;
Attachments
Issue Links
- duplicates
-
QTBUG-16362 Mac: wrong alignment of QPushButton when "small" fixed sized is used
- Closed
- relates to
-
QTBUG-16361 Mac: wrong alignment of QPushButton when style sheet is used
- Closed
-
QTBUG-16362 Mac: wrong alignment of QPushButton when "small" fixed sized is used
- Closed