From fb4ad0d1a9d86f0125726683ebecc507cf7eb987 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Wed, 5 Dec 2012 16:20:12 +0100 Subject: [PATCH] Mac: Transient scrollbars should overlap in the corner on 10.8 Change-Id: Ied239d5e3cb05bed6b892607f0344e6daa028918 Reviewed-by: Richard Moe Gustavsen --- src/widgets/widgets/qabstractscrollarea.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index 3c21d76..2a3bdb0 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -489,12 +489,20 @@ void QAbstractScrollAreaPrivate::layoutChildren() if (hasMacReverseSizeGrip) horizontalScrollBarRect.adjust(vsbExt, 0, 0, 0); #endif +#ifdef Q_OS_MAC + if (!hasCornerWidget && QSysInfo::macVersion() >= QSysInfo::MV_10_8 && q->style()->styleHint(QStyle::SH_ScrollBar_Transient)) + horizontalScrollBarRect.adjust(0, 0, cornerOffset.x(), 0); +#endif scrollBarContainers[Qt::Horizontal]->setGeometry(QStyle::visualRect(opt.direction, opt.rect, horizontalScrollBarRect)); scrollBarContainers[Qt::Horizontal]->raise(); } if (needv) { - const QRect verticalScrollBarRect (QPoint(cornerPoint.x(), controlsRect.top() + hHeaderBottom), QPoint(controlsRect.right(), cornerPoint.y() - 1)); + QRect verticalScrollBarRect (QPoint(cornerPoint.x(), controlsRect.top() + hHeaderBottom), QPoint(controlsRect.right(), cornerPoint.y() - 1)); +#ifdef Q_OS_MAC + if (!hasCornerWidget && QSysInfo::macVersion() >= QSysInfo::MV_10_8 && q->style()->styleHint(QStyle::SH_ScrollBar_Transient)) + verticalScrollBarRect.adjust(0, 0, 0, cornerOffset.y()); +#endif scrollBarContainers[Qt::Vertical]->setGeometry(QStyle::visualRect(opt.direction, opt.rect, verticalScrollBarRect)); scrollBarContainers[Qt::Vertical]->raise(); } -- 2.7.4