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; |