summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristoph Schleifenbaum <christoph.schleifenbaum@kdab.com>2013-02-07 13:07:31 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-13 12:43:46 +0100
commit44f6dcf054cc8755b29060d366d57a016d6b85cc (patch)
tree742aed7caa66757ee8fe235830e6b6abbb48766f /src
parentd061cfde880339c973fb26c3e6ce18ee74049606 (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.mm14
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);