diff options
author | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-11-11 09:29:17 +0200 |
---|---|---|
committer | Tarja Sundqvist <tarja.sundqvist@qt.io> | 2022-11-11 09:29:17 +0200 |
commit | 4ee4fc18b4067b90efa46ca9baba74f53b54d9ec (patch) | |
tree | cc68622c9b85992d99a8373ab55471ee821a4ebf /src/widgets/widgets/qscrollarea.cpp | |
parent | ab28ff2207e8f33754c79793089dbf943d67736d (diff) | |
parent | ebb49c66aaf22ed55d62ff7bc3690fce00b7d8ba (diff) |
Merge remote-tracking branch 'origin/tqtc/lts-5.15.8' into tqtc/lts-5.15-opensourcev5.15.8-lts-lgpl
Change-Id: I569a2246c9e8d70430e8c5405b9f3df2218078ee
Diffstat (limited to 'src/widgets/widgets/qscrollarea.cpp')
-rw-r--r-- | src/widgets/widgets/qscrollarea.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/widgets/widgets/qscrollarea.cpp b/src/widgets/widgets/qscrollarea.cpp index f880240ea7..e8fdadb648 100644 --- a/src/widgets/widgets/qscrollarea.cpp +++ b/src/widgets/widgets/qscrollarea.cpp @@ -203,10 +203,13 @@ void QScrollAreaPrivate::updateScrollBars() if (vbarpolicy == Qt::ScrollBarAsNeeded) { int vbarWidth = vbar->sizeHint().width(); QSize m_hfw = m.expandedTo(min).boundedTo(max); - while (h > m.height() && vbarWidth) { - --vbarWidth; - --m_hfw.rwidth(); - h = widget->heightForWidth(m_hfw.width()); + // is there any point in searching? + if (widget->heightForWidth(m_hfw.width() - vbarWidth) <= m.height()) { + while (h > m.height() && vbarWidth) { + --vbarWidth; + --m_hfw.rwidth(); + h = widget->heightForWidth(m_hfw.width()); + } } max = QSize(m_hfw.width(), qMax(m_hfw.height(), h)); } |