From eaa54a8f9884652513c7c3ab489f31ff1e5d712c Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Tue, 27 Jun 2017 14:36:01 -0700 Subject: [PATCH] QMacStyle: Properly polish and unpolish QTabBar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-61092 Change-Id: Id8b6caef264c61936a425757c6d8fac63142d5ec Reviewed-by: Tor Arne Vestbø --- src/widgets/styles/qmacstyle_mac.mm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index 147b2027bfc..978810572b5 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -2262,6 +2262,8 @@ void QMacStyle::polish(QWidget* w) QPalette p = w->palette(); p.setColor(QPalette::WindowText, QColor(17, 17, 17)); w->setPalette(p); + w->setAttribute(Qt::WA_SetPalette, false); + w->setAttribute(Qt::WA_SetFont, false); } } #endif @@ -2304,6 +2306,15 @@ void QMacStyle::unpolish(QWidget* w) } #endif +#ifndef QT_NO_TABBAR + if (QTabBar *tb = qobject_cast(w)) { + if (!w->testAttribute(Qt::WA_SetFont)) + w->setFont(qApp->font(w)); + if (!w->testAttribute(Qt::WA_SetPalette)) + w->setPalette(qApp->palette(w)); + } +#endif + if (QRubberBand *rubber = qobject_cast(w)) { rubber->setWindowOpacity(1.0); rubber->setAttribute(Qt::WA_PaintOnScreen, true);