Commit 258e3aad authored by Jocelyn Turcotte's avatar Jocelyn Turcotte Committed by The Qt Project
Browse files

Use our own implementation of GetDefaultXDisplay.


This allows the Chromium GL code to initialize on the display created
by Qt.

Change-Id: I3d21f56c3792d6e99cb94690f56d7dd5c542045a
Reviewed-by: default avatarZeno Albisser <zeno.albisser@digia.com>
parent fb62607e
Branches
Tags
No related merge requests found
Showing with 61 additions and 1 deletion
3rdparty @ 63f1510d
Subproject commit aee1bf50ed6733635ac6ae7389657a4563a8a7f7
Subproject commit 63f1510d708ce6e90354c63655fa21bd4906e52e
From 717b027460dbda87c965ea0069fd11bbe7aad59f Mon Sep 17 00:00:00 2001
From: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Date: Fri, 20 Sep 2013 15:01:41 +0200
Subject: [PATCH] Hide the definition of MessagePumpGtk::GetDefaultXDisplay.
---
base/message_loop/message_pump_gtk.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/base/message_loop/message_pump_gtk.cc b/base/message_loop/message_pump_gtk.cc
index ad65113..af59685 100644
--- a/base/message_loop/message_pump_gtk.cc
+++ b/base/message_loop/message_pump_gtk.cc
@@ -85,6 +85,9 @@ void MessagePumpGtk::DispatchEvents(GdkEvent* event) {
DidProcessEvent(event);
}
+// FIXME: Get our own MessagePumpUI to avoid this.
+// Comment out this version so that our Qt version in shared_globals.cpp is used.
+/*
// static
Display* MessagePumpGtk::GetDefaultXDisplay() {
static GdkDisplay* display = gdk_display_get_default();
@@ -96,6 +99,7 @@ Display* MessagePumpGtk::GetDefaultXDisplay() {
}
return GDK_DISPLAY_XDISPLAY(display);
}
+*/
void MessagePumpGtk::WillProcessEvent(GdkEvent* event) {
FOR_EACH_OBSERVER(MessagePumpObserver, observers(), WillProcessEvent(event));
--
1.8.4
......@@ -68,6 +68,7 @@ git am $PATCH_DIR/0001-remove-Wno-deprecated-register-from-common.gypi.patch
git am $PATCH_DIR/0001-Solve-conflicts-when-including-both-QtOpenGL-headers.patch
git am $PATCH_DIR/0001-Do-not-forward-declare-UIResourceRequest-Identity-an.patch
git am $PATCH_DIR/0001-Fix-the-build-with-a-GL-ES2-configured-Qt.patch
git am $PATCH_DIR/0001-Hide-the-definition-of-MessagePumpGtk-GetDefaultXDis.patch
cd $CHROMIUM_SRC_DIR/third_party/WebKit
echo "Entering $PWD"
......
......@@ -23,6 +23,7 @@ PER_CONFIG_DEFINES = QTWEBENGINEPROCESS_PATH=\\\"$$getOutDir()/%config/$$QTWEBEN
CONFIG(release, debug|release): DEFINES += NDEBUG
QT += gui
QT_PRIVATE += gui-private
SOURCES = \
resource_bundle_qt.cpp \
......
......@@ -41,10 +41,17 @@
#include "shared_globals.h"
#include "base/message_loop/message_pump_gtk.h"
#include "content/browser/renderer_host/render_widget_host_view_base.h"
#include <QGuiApplication>
#include <QScreen>
#include <QWindow>
#include <qpa/qplatformnativeinterface.h>
#if defined(USE_X11)
#include <X11/Xlib.h>
#endif
void GetScreenInfoFromNativeWindow(QWindow* window, WebKit::WebScreenInfo* results)
{
......@@ -63,6 +70,23 @@ void GetScreenInfoFromNativeWindow(QWindow* window, WebKit::WebScreenInfo* resul
*results = r;
}
namespace base {
#if defined(USE_X11)
Display* MessagePumpGtk::GetDefaultXDisplay() {
static void *display = qApp->platformNativeInterface()->nativeResourceForScreen(QByteArrayLiteral("display"), qApp->primaryScreen());
if (!display) {
// XLib isn't available or has not been initialized, which is a decision we wish to
// support, for example for the GPU process.
static Display* xdisplay = XOpenDisplay(NULL);
return xdisplay;
}
return static_cast<Display*>(display);
}
#endif
}
namespace content {
class WebContentsImpl;
class WebContentsViewPort;
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment