src/gui/styles/qstylesheetstyle.cpp
branchRCL_3
changeset 14 c0432d11811c
parent 8 3f74d0d4af4c
--- a/src/gui/styles/qstylesheetstyle.cpp	Wed Apr 21 12:15:23 2010 +0300
+++ b/src/gui/styles/qstylesheetstyle.cpp	Wed Apr 21 20:15:53 2010 +0300
@@ -4242,8 +4242,15 @@
         if (const QAbstractScrollArea *sa = qobject_cast<const QAbstractScrollArea *>(w)) {
             const QAbstractScrollAreaPrivate *sap = sa->d_func();
             rule.drawBackground(p, opt->rect, sap->contentsOffset());
-            if (rule.hasBorder())
-                rule.drawBorder(p, rule.borderRect(opt->rect));
+            if (rule.hasBorder()) {
+                QRect brect = rule.borderRect(opt->rect);
+                if (styleHint(QStyle::SH_ScrollView_FrameOnlyAroundContents, opt, w)) {
+                    QRect r = brect.adjusted(0, 0, sa->verticalScrollBar()->isVisible() ? -sa->verticalScrollBar()->width() : 0,
+                                             sa->horizontalScrollBar()->isVisible() ? -sa->horizontalScrollBar()->height() : 0);
+                    brect = QStyle::visualRect(opt->direction, brect, r);
+                }
+                rule.drawBorder(p, brect);
+            }
             break;
         }
 #endif
@@ -4628,6 +4635,11 @@
             return msz.width() == -1 ? msz.height() : msz.width();
         }
         break;
+
+    case PM_ScrollView_ScrollBarSpacing:
+        if(!rule.hasNativeBorder() || rule.hasBox())
+            return 0;
+        break;
 #endif // QT_NO_SCROLLBAR
 
     case PM_ProgressBarChunkWidth: