From 44f6dcf054cc8755b29060d366d57a016d6b85cc Mon Sep 17 00:00:00 2001 From: Christoph Schleifenbaum Date: Thu, 7 Feb 2013 13:07:31 +0100 Subject: [PATCH] Mac: Fix transient scroll bar appearance. Transient scroll bars should never be used outside of scroll areas, since they would be unusable. Task-Number: QTBUG-29389 Change-Id: Ie52d2093a4ab66085300a19ca9a1b32f13a29e79 Reviewed-by: J-P Nurmi --- src/widgets/styles/qmacstyle_mac.mm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index 4bdd0a9bcbf..bb9230804cf 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -2707,15 +2707,15 @@ int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w ret = false; break; case SH_ScrollBar_Transient: - if (!qobject_cast(w)) { - ret = false; - break; - } - ret = QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7; + if ((qobject_cast(w) && w->parent() && + qobject_cast(w->parent()->parent())) || + (opt && QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ScrollBar))) { + ret = QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7; #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 - if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7) - ret &= [NSScroller preferredScrollerStyle] == NSScrollerStyleOverlay; + if (ret) + ret = [NSScroller preferredScrollerStyle] == NSScrollerStyleOverlay; #endif + } break; default: ret = QCommonStyle::styleHint(sh, opt, w, hret);