diff options
-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 |