From 057fabab7cbcb6b278771e1336c3a82f64106b2d Mon Sep 17 00:00:00 2001 From: Cyril Oblikov Date: Wed, 20 Feb 2013 17:19:15 +0300 Subject: [PATCH] Hiding scrollbar on MacOSX 10.7 if policy is set to ScrollBarAlwaysOff On Mac OS X 10.7 (if System Preferences -> General -> Show scroll bar is "When scrolling") scroll bar was shown even if policy was set to ScrollBarAlwaysOff. This is a regression from 5.0.0. Change-Id: I161b350874c085a1397df7b398af8f3fb0fbeacf Reviewed-by: Gabriel de Dietrich Reviewed-by: Jens Bache-Wiig --- src/widgets/widgets/qabstractscrollarea.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index 24a92f383e..391a06917c 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -329,13 +329,13 @@ void QAbstractScrollAreaPrivate::layoutChildren() { Q_Q(QAbstractScrollArea); bool transient = q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, vbar ? vbar : hbar); - bool needh = (hbarpolicy == Qt::ScrollBarAlwaysOn && !transient) + bool needh = (hbarpolicy != Qt::ScrollBarAlwaysOff) && ((hbarpolicy == Qt::ScrollBarAlwaysOn && !transient) || ((hbarpolicy == Qt::ScrollBarAsNeeded || transient) - && hbar->minimum() < hbar->maximum() && !hbar->sizeHint().isEmpty()); + && hbar->minimum() < hbar->maximum() && !hbar->sizeHint().isEmpty())); - bool needv = (vbarpolicy == Qt::ScrollBarAlwaysOn && !transient) + bool needv = (vbarpolicy != Qt::ScrollBarAlwaysOff) && ((vbarpolicy == Qt::ScrollBarAlwaysOn && !transient) || ((vbarpolicy == Qt::ScrollBarAsNeeded || transient) - && vbar->minimum() < vbar->maximum() && !vbar->sizeHint().isEmpty()); + && vbar->minimum() < vbar->maximum() && !vbar->sizeHint().isEmpty())); QStyleOption opt(0); opt.init(q); @@ -1456,9 +1456,9 @@ void QAbstractScrollAreaPrivate::flashScrollBars() { Q_Q(QAbstractScrollArea); bool transient = q->style()->styleHint(QStyle::SH_ScrollBar_Transient, 0, vbar ? vbar : hbar); - if (hbarpolicy == Qt::ScrollBarAsNeeded || transient) + if ((hbarpolicy != Qt::ScrollBarAlwaysOff) && (hbarpolicy == Qt::ScrollBarAsNeeded || transient)) hbar->d_func()->flash(); - if (vbarpolicy == Qt::ScrollBarAsNeeded || transient) + if ((vbarpolicy != Qt::ScrollBarAlwaysOff) && (vbarpolicy == Qt::ScrollBarAsNeeded || transient)) vbar->d_func()->flash(); }