summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit/qt/ChangeLog22
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp5
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h3
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage.cpp1
4 files changed, 30 insertions, 1 deletions
diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog
index a6ddce81c..e4c145be9 100644
--- a/Source/WebKit/qt/ChangeLog
+++ b/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,25 @@
+2012-12-06 Pierre Rossi <pierre.rossi@gmail.com>
+
+ [Qt] QWebView uses the mobile style and doesn't follow Qt's style
+ https://bugs.webkit.org/show_bug.cgi?id=104134
+
+ Reviewed by Simon Hausmann.
+
+ Another issue introduced by r136235.
+ Fix the order of initialization of the styleFactory and creation of the
+ WebCore Page. Since the latter has a RenderTheme member and the creation
+ of the appropriate RenderTheme type (QStyle-backed) is dependant on having
+ first initialized the theme factory function, we need to postpone this just
+ a little bit.
+
+ * WebCoreSupport/QWebPageAdapter.cpp:
+ (QWebPageAdapter::QWebPageAdapter):
+ (QWebPageAdapter::initializeWebCorePage): Added.
+ * WebCoreSupport/QWebPageAdapter.h:
+ * WidgetApi/qwebpage.cpp:
+ (QWebPagePrivate::QWebPagePrivate): call initializeWebCorePage only after
+ having initialized WebKitWidgets related logic (QStyle hooks in this case).
+
2012-12-05 Zeno Albisser <zeno@webkit.org>
[Qt][Mac] QWebView disappears when the system tries to hide the scrollbars.
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
index cb93cd9f7..5588c11bb 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.cpp
@@ -167,10 +167,13 @@ QWebPageAdapter::QWebPageAdapter()
, networkManager(0)
{
WebCore::initializeWebCoreQt();
+}
+
+void QWebPageAdapter::initializeWebCorePage()
+{
#if ENABLE(GEOLOCATION) || ENABLE(DEVICE_ORIENTATION)
bool useMock = QWebPageAdapter::drtRun;
#endif
-
Page::PageClients pageClients;
pageClients.chromeClient = new ChromeClientQt(this);
pageClients.contextMenuClient = new ContextMenuClientQt();
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h
index 87b4ecd14..dbba7f5b2 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h
+++ b/Source/WebKit/qt/WebCoreSupport/QWebPageAdapter.h
@@ -136,6 +136,9 @@ public:
// the QWebPageAdapter and the QWebPagePrivate are intact when
// various destruction callbacks from WebCore::Page::~Page() hit us.
void deletePage();
+ // For similar reasons, we don't want to create the WebCore Page before
+ // we properly initialized the style factory callbacks.
+ void initializeWebCorePage();
virtual void show() = 0;
virtual void setFocus() = 0;
diff --git a/Source/WebKit/qt/WidgetApi/qwebpage.cpp b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
index c1176cf66..f9cec3e54 100644
--- a/Source/WebKit/qt/WidgetApi/qwebpage.cpp
+++ b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
@@ -201,6 +201,7 @@ QWebPagePrivate::QWebPagePrivate(QWebPage *qq)
, m_lastDropAction(Qt::IgnoreAction)
{
WebKit::initializeWebKitWidgets();
+ initializeWebCorePage();
memset(actions, 0, sizeof(actions));
#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)