Index: ui/ozone/platform/x11/ozone_platform_x11.cc |
diff --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc |
index 1219ee1caf5b0ad59fe1d94f5f23e479e1f6a637..cf53f7deba972a1e521a26032dc90d88bcd08076 100644 |
--- a/ui/ozone/platform/x11/ozone_platform_x11.cc |
+++ b/ui/ozone/platform/x11/ozone_platform_x11.cc |
@@ -91,7 +91,8 @@ class OzonePlatformX11 : public OzonePlatform { |
void InitializeUI() override { |
window_manager_.reset(new X11WindowManagerOzone); |
- event_source_.reset(new X11EventSourceLibevent(gfx::GetXDisplay())); |
+ if (!event_source_) |
+ event_source_.reset(new X11EventSourceLibevent(gfx::GetXDisplay())); |
overlay_manager_.reset(new StubOverlayManager()); |
input_controller_ = CreateStubInputController(); |
cursor_factory_ozone_.reset(new X11CursorFactoryOzone()); |
@@ -99,13 +100,14 @@ class OzonePlatformX11 : public OzonePlatform { |
} |
void InitializeGPU() override { |
+ if (!event_source_) |
+ event_source_.reset(new X11EventSourceLibevent(gfx::GetXDisplay())); |
surface_factory_ozone_.reset(new X11SurfaceFactory()); |
} |
private: |
- // Objects in the Browser process. |
+ // Objects in the browser process. |
std::unique_ptr<X11WindowManagerOzone> window_manager_; |
- std::unique_ptr<X11EventSourceLibevent> event_source_; |
std::unique_ptr<OverlayManagerOzone> overlay_manager_; |
std::unique_ptr<InputController> input_controller_; |
std::unique_ptr<X11CursorFactoryOzone> cursor_factory_ozone_; |
@@ -114,6 +116,9 @@ class OzonePlatformX11 : public OzonePlatform { |
// Objects in the GPU process. |
std::unique_ptr<X11SurfaceFactory> surface_factory_ozone_; |
+ // Objects in both browser and GPU process. |
+ std::unique_ptr<X11EventSourceLibevent> event_source_; |
+ |
DISALLOW_COPY_AND_ASSIGN(OzonePlatformX11); |
}; |