diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/util/qscroller.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/widgets/util/qscroller.cpp b/src/widgets/util/qscroller.cpp index e229a885a8..abb203b8cc 100644 --- a/src/widgets/util/qscroller.cpp +++ b/src/widgets/util/qscroller.cpp @@ -1725,10 +1725,12 @@ void QScrollerPrivate::setState(QScroller::State newstate) sendEvent(target, &se); firstScroll = true; } - if (state == QScroller::Dragging || state == QScroller::Scrolling) - qt_activeScrollers()->push_back(q); - else + if (state == QScroller::Dragging || state == QScroller::Scrolling) { + if (!qt_activeScrollers()->contains(q)) + qt_activeScrollers()->push_back(q); + } else { qt_activeScrollers()->removeOne(q); + } emit q->stateChanged(state); } |