src/gui/styles/qstylesheetstyle.cpp
changeset 22 79de32ba3296
parent 18 2f34d5167611
child 23 89e065397ea6
--- a/src/gui/styles/qstylesheetstyle.cpp	Mon May 03 13:17:34 2010 +0300
+++ b/src/gui/styles/qstylesheetstyle.cpp	Fri May 14 16:40:13 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: