From 8396162027bf65c5a0367d297fcf2b228ff2e85f Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 2 Apr 2018 14:30:10 -0700 Subject: QTabBar: Repaint when releasing mouse on selected tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some styles, most notably QMacStyle, require this to properly reflect the pressed state. Change-Id: Ie841d97afbe3cfdfde1254a7069876a1a0af2e52 Reviewed-by: Morten Johan Sørvig --- src/widgets/widgets/qtabbar.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/widgets/widgets/qtabbar.cpp') 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 -- cgit v1.2.3