diff options
author | Gabriel de Dietrich <gabriel.dedietrich@qt.io> | 2018-04-02 14:30:10 -0700 |
---|---|---|
committer | Gabriel de Dietrich <gabriel.dedietrich@qt.io> | 2018-04-05 21:04:06 +0000 |
commit | 8396162027bf65c5a0367d297fcf2b228ff2e85f (patch) | |
tree | 2047118cd61d4d2a4943a318407b8adc6cedee01 | |
parent | cff91429424c0b10c1bd562f2f9699ef2faa30f0 (diff) |
QTabBar: Repaint when releasing mouse on selected tab
Some styles, most notably QMacStyle, require this to
properly reflect the pressed state.
Change-Id: Ie841d97afbe3cfdfde1254a7069876a1a0af2e52
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
-rw-r--r-- | src/widgets/widgets/qtabbar.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp index 258e018151..2f2d1bceee 100644 --- a/src/widgets/widgets/qtabbar.cpp +++ b/src/widgets/widgets/qtabbar.cpp @@ -2166,8 +2166,12 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event) QStyleOptionTabBarBase optTabBase; optTabBase.initFrom(this); optTabBase.documentMode = d->documentMode; - if (style()->styleHint(QStyle::SH_TabBar_SelectMouseType, &optTabBase, this) == QEvent::MouseButtonRelease) + const bool selectOnRelease = + (style()->styleHint(QStyle::SH_TabBar_SelectMouseType, &optTabBase, this) == QEvent::MouseButtonRelease); + if (selectOnRelease) setCurrentIndex(i); + if (!selectOnRelease || !d->validIndex(i) || d->currentIndex == i) + repaint(tabRect(i)); } /*!\reimp |