summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2012-12-06 16:58:30 +0100
committerPierre Rossi <pierre.rossi@gmail.com>2012-12-06 17:22:48 +0100
commit08d610737197b47bdfc7f78b0f712c337cc87286 (patch)
treeece636b9f75f173dac6a45174e372a27c1823ce9 /Source
parentc37c507e58da50f4f94db998c19e355cc84e53d8 (diff)
downloadqtwebkit-08d610737197b47bdfc7f78b0f712c337cc87286.tar.gz
Use non transient scrollbars on Mac
The current rendering would display the transient scrollbar on top of an empty background area. To make it look decent, we force non transient scrollbars through a style proxy. Change-Id: I33cdf9b9bb91d635eb40242187f98dd84da1fb9a Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit/qt/WidgetSupport/QStyleFacadeImp.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/Source/WebKit/qt/WidgetSupport/QStyleFacadeImp.cpp b/Source/WebKit/qt/WidgetSupport/QStyleFacadeImp.cpp
index 7e2b8cab7..2c4babc75 100644
--- a/Source/WebKit/qt/WidgetSupport/QStyleFacadeImp.cpp
+++ b/Source/WebKit/qt/WidgetSupport/QStyleFacadeImp.cpp
@@ -28,6 +28,9 @@
#include <QApplication>
#include <QLineEdit>
#include <QPainter>
+#ifdef Q_OS_MAC
+#include <QProxyStyle>
+#endif
#include <QPushButton>
#include <QStyleFactory>
#include <QStyleOption>
@@ -478,6 +481,21 @@ QObject* QStyleFacadeImp::widgetForPainter(QPainter* painter)
return 0;
}
+#ifdef Q_OS_MAC
+class QMacNonTransientScrollBarsProxyStyle : public QProxyStyle
+{
+public:
+ QMacNonTransientScrollBarsProxyStyle(QStyle *bs) : QProxyStyle(bs) { }
+
+ int styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w, QStyleHintReturn *hret) const
+ {
+ if (sh == SH_ScrollBar_Transient)
+ return 0;
+ return baseStyle()->styleHint(sh, opt, w, hret);
+ }
+};
+#endif // Q_OS_MAC
+
QStyle* QStyleFacadeImp::style() const
{
if (m_style)
@@ -491,6 +509,10 @@ QStyle* QStyleFacadeImp::style() const
if (!m_style)
m_style = QApplication::style();
+#ifdef Q_OS_MAC
+ m_style = new QMacNonTransientScrollBarsProxyStyle(m_style);
+#endif
+
return m_style;
}