summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2021-11-30 20:30:47 +0100
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2021-12-01 15:03:34 +0100
commite977b55346facf9238892a81ba2b2b382e6f46be (patch)
treef4d184836b6b31bfcb0f0ddbe7e29faf3891ff54
parentd281274c3fe21d1054725c6c190881ab064784f6 (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.cpp6
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);