| Index: trunk/src/ui/gl/gl_surface_glx.cc
|
| ===================================================================
|
| --- trunk/src/ui/gl/gl_surface_glx.cc (revision 263732)
|
| +++ trunk/src/ui/gl/gl_surface_glx.cc (working copy)
|
| @@ -21,7 +21,6 @@
|
| #include "base/threading/thread.h"
|
| #include "base/time/time.h"
|
| #include "third_party/mesa/src/include/GL/osmesa.h"
|
| -#include "ui/gfx/x/x11_connection.h"
|
| #include "ui/gfx/x/x11_types.h"
|
| #include "ui/gl/gl_bindings.h"
|
| #include "ui/gl/gl_implementation.h"
|
| @@ -379,9 +378,23 @@
|
|
|
| // SGIVideoSyncProviderShim (if instantiated) will issue X commands on
|
| // it's own thread.
|
| - gfx::InitializeThreadedX11();
|
| - g_display = gfx::GetXDisplay();
|
| + XInitThreads();
|
|
|
| +#if defined(TOOLKIT_GTK)
|
| + // Be sure to use the X display handle and not the GTK display handle if this
|
| + // is the GPU process.
|
| + g_create_child_windows =
|
| + base::MessageLoop::current() &&
|
| + base::MessageLoop::current()->type() == base::MessageLoop::TYPE_GPU;
|
| +
|
| + if (g_create_child_windows)
|
| + g_display = base::MessagePumpX11::GetDefaultXDisplay();
|
| + else
|
| + g_display = base::MessagePumpForUI::GetDefaultXDisplay();
|
| +#else
|
| + g_display = base::MessagePumpForUI::GetDefaultXDisplay();
|
| +#endif
|
| +
|
| if (!g_display) {
|
| LOG(ERROR) << "XOpenDisplay failed.";
|
| return false;
|
|
|