diff options
author | Iikka Eklund <iikka.eklund@digia.com> | 2014-04-02 07:36:48 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-04-02 07:36:48 +0200 |
commit | d6f58e5e17d58c640fc7779652008fda0d66f41d (patch) | |
tree | d50d27e260c9eaf4bc2bcb4480b8a069a3aed857 /src/widgets/widgets/qscrollbar.cpp | |
parent | 83de197a57ff6c3e5bbad26bd871981285384fcb (diff) | |
parent | 0ab63b035a649dc1982c867cd37d466d249004b9 (diff) |
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Diffstat (limited to 'src/widgets/widgets/qscrollbar.cpp')
-rw-r--r-- | src/widgets/widgets/qscrollbar.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/widgets/widgets/qscrollbar.cpp b/src/widgets/widgets/qscrollbar.cpp index 05b8935bb5..5060ca0a70 100644 --- a/src/widgets/widgets/qscrollbar.cpp +++ b/src/widgets/widgets/qscrollbar.cpp @@ -248,8 +248,13 @@ void QScrollBarPrivate::flash() Q_Q(QScrollBar); if (!flashed && q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, q)) { flashed = true; - q->show(); + if (!q->isVisible()) + q->show(); + else + q->update(); } + if (!flashTimer) + flashTimer = q->startTimer(0); } void QScrollBarPrivate::activateControl(uint control, int threshold) @@ -386,6 +391,7 @@ void QScrollBarPrivate::init() pointerOutsidePressedControl = false; transient = q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, q); flashed = false; + flashTimer = 0; q->setFocusPolicy(Qt::NoFocus); QSizePolicy sp(QSizePolicy::Minimum, QSizePolicy::Fixed, QSizePolicy::Slider); if (orientation == Qt::Vertical) @@ -476,6 +482,7 @@ void QScrollBar::sliderChange(SliderChange change) */ bool QScrollBar::event(QEvent *event) { + Q_D(QScrollBar); switch(event->type()) { case QEvent::HoverEnter: case QEvent::HoverLeave: @@ -486,6 +493,16 @@ bool QScrollBar::event(QEvent *event) case QEvent::StyleChange: d_func()->setTransient(style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)); break; + case QEvent::Timer: + if (static_cast<QTimerEvent *>(event)->timerId() == d->flashTimer) { + if (d->flashed && style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)) { + d->flashed = false; + update(); + } + killTimer(d->flashTimer); + d->flashTimer = 0; + } + break; default: break; } @@ -536,10 +553,6 @@ void QScrollBar::paintEvent(QPaintEvent *) opt.activeSubControls = (QStyle::SubControl)d->hoverControl; } style()->drawComplexControl(QStyle::CC_ScrollBar, &opt, &p, this); - if (d->flashed && style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, this)) { - d->flashed = false; - update(); - } } /*! |