diff options
-rw-r--r-- | src/widgets/styles/qstylesheetstyle.cpp | 7 | ||||
-rw-r--r-- | tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp | 10 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index e53b81b292..472d3c05db 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -5840,8 +5840,11 @@ QRect QStyleSheetStyle::subElementRect(SubElement se, const QStyleOption *opt, c case SE_PushButtonBevel: case SE_PushButtonFocusRect: if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) { - if (rule.hasBox() || !rule.hasNativeBorder()) - return visualRect(opt->direction, opt->rect, rule.contentsRect(opt->rect)); + if (rule.hasBox() || !rule.hasNativeBorder()) { + return visualRect(opt->direction, opt->rect, se == SE_PushButtonBevel + ? rule.borderRect(opt->rect) + : rule.contentsRect(opt->rect)); + } return rule.baseStyleCanDraw() ? baseStyle()->subElementRect(se, btn, w) : QWindowsStyle::subElementRect(se, btn, w); } diff --git a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp index 7b4e85f823..d3314494d5 100644 --- a/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp +++ b/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp @@ -686,7 +686,12 @@ void tst_QPushButton::hitButton() QVBoxLayout *layout = new QVBoxLayout; PushButton *button1 = new PushButton("Ok"); PushButton *button2 = new PushButton("Cancel"); - button2->setStyleSheet("QPushButton { margin: 10px; border-radius: 4px; border: 1px solid black; }"); + button2->setStyleSheet("QPushButton {" + "padding: 5px;" + "margin: 5px;" + "border-radius: 4px;" + "border: 1px solid black; }" + ); layout->addWidget(button1); layout->addWidget(button2); @@ -700,7 +705,8 @@ void tst_QPushButton::hitButton() const QPoint button2Center = button2->rect().center(); QVERIFY(button2->hitButton(button2Center)); - QVERIFY(!button2->hitButton(QPoint(0, 0))); + QVERIFY(button2->hitButton(QPoint(6, 6))); + QVERIFY(!button2->hitButton(QPoint(2, 2))); } QTEST_MAIN(tst_QPushButton) |