summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@qt.io>2018-04-02 14:30:10 -0700
committerGabriel de Dietrich <gabriel.dedietrich@qt.io>2018-04-05 21:04:06 +0000
commit8396162027bf65c5a0367d297fcf2b228ff2e85f (patch)
tree2047118cd61d4d2a4943a318407b8adc6cedee01
parentcff91429424c0b10c1bd562f2f9699ef2faa30f0 (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.cpp6
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