diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2021-11-30 20:30:47 +0100 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2021-12-01 15:03:34 +0100 |
commit | e977b55346facf9238892a81ba2b2b382e6f46be (patch) | |
tree | f4d184836b6b31bfcb0f0ddbe7e29faf3891ff54 | |
parent | d281274c3fe21d1054725c6c190881ab064784f6 (diff) |
QTabBar: clamp maxScrollOffset before using it in qBound
QTabBar's test reveals that maxScrollOffset can be negative, so
using it in a call like
qBound(0, x, maxScrollOffset)
is wrong. Clamp it to 0.
Change-Id: Idd635343bf14c904dbcc4d141f10bd0161d2cfb4
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r-- | src/widgets/widgets/qtabbar.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp index 3fdd6fc314..4b1a37d6e2 100644 --- a/src/widgets/widgets/qtabbar.cpp +++ b/src/widgets/widgets/qtabbar.cpp @@ -2408,9 +2408,9 @@ void QTabBar::wheelEvent(QWheelEvent *event) if (!d->rightB->isVisible()) scrollRectExtent += tabsVertical ? d->rightB->height() : d->rightB->width(); - const int maxScrollOffset = (tabsVertical ? lastTabRect.bottom() - : lastTabRect.right()) - - scrollRectExtent; + const int maxScrollOffset = qMax((tabsVertical ? + lastTabRect.bottom() : + lastTabRect.right()) - scrollRectExtent, 0); d->scrollOffset = qBound(0, d->scrollOffset - delta, maxScrollOffset); d->leftB->setEnabled(d->scrollOffset > -scrollRect.left()); d->rightB->setEnabled(maxScrollOffset > d->scrollOffset); |