diff options
author | Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> | 2013-02-07 13:07:31 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-13 12:43:46 +0100 |
commit | 44f6dcf054cc8755b29060d366d57a016d6b85cc (patch) | |
tree | 742aed7caa66757ee8fe235830e6b6abbb48766f /src | |
parent | d061cfde880339c973fb26c3e6ce18ee74049606 (diff) |
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 <jpnurmi@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/widgets/styles/qmacstyle_mac.mm | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index 4bdd0a9bcb..bb9230804c 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<const QScrollBar*>(w)) { - ret = false; - break; - } - ret = QSysInfo::MacintoshVersion >= QSysInfo::MV_10_7; + if ((qobject_cast<const QScrollBar *>(w) && w->parent() && + qobject_cast<QAbstractScrollArea*>(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); |