diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index f6f8e8b7952..a146d4c4f90 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -1433,7 +1433,7 @@ QSize QAbstractScrollArea::sizeHint() const const int f = 2 * d->frameWidth; const QSize frame(f, f); const bool vbarHidden = !d->vbar->isVisibleTo(this) || d->vbarpolicy == Qt::ScrollBarAlwaysOff; - const bool hbarHidden = !d->vbar->isVisibleTo(this) || d->hbarpolicy == Qt::ScrollBarAlwaysOff; + const bool hbarHidden = !d->hbar->isVisibleTo(this) || d->hbarpolicy == Qt::ScrollBarAlwaysOff; const QSize scrollbars(vbarHidden ? 0 : d->vbar->sizeHint().width(), hbarHidden ? 0 : d->hbar->sizeHint().height()); d->sizeHint = frame + scrollbars + viewportSizeHint(); diff --git a/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp b/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp index fa1f799855e..f91d9846562 100644 --- a/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp +++ b/tests/auto/widgets/widgets/qabstractscrollarea/tst_qabstractscrollarea.cpp @@ -431,6 +431,18 @@ void tst_QAbstractScrollArea::sizeHint() QSize sizeHint = scrollArea.sizeHint(); QCOMPARE(sizeHint, scrollArea.viewportSizeHint()); + // check if the hScrollbar is taken into account + scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + scrollArea.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + QCOMPARE_GT(scrollArea.sizeHint().height(), scrollArea.viewportSizeHint().height()); + + // check if the vScrollbar is taken into account + scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + scrollArea.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + QCOMPARE_GT(scrollArea.sizeHint().width(), scrollArea.viewportSizeHint().width()); + + scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + scrollArea.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); const QSize sizeHintWithScrollBars = scrollArea.sizeHint();