Index: services/ui/ws/window_server.cc |
diff --git a/services/ui/ws/window_server.cc b/services/ui/ws/window_server.cc |
index d012b886dc2f0bc50ecc2246398ff6bcdc5aef36..2a5278215fe494f197705aeea8c52e8fb298a2b5 100644 |
--- a/services/ui/ws/window_server.cc |
+++ b/services/ui/ws/window_server.cc |
@@ -826,7 +826,13 @@ void WindowServer::OnSurfaceCreated(const cc::SurfaceInfo& surface_info) { |
window_paint_callback_.Run(window); |
auto* display = display_manager_->GetDisplayContaining(window); |
- if (display && window == display->GetActiveRootWindow()) { |
+ WindowManagerDisplayRoot* display_root = |
+ display ? display->GetActiveWindowManagerDisplayRoot() : nullptr; |
+ if (display_root && (window == display_root->root() || |
kylechar
2017/04/26 16:41:44
Can you pull some of this conditional out into oth
sky
2017/04/26 19:36:42
Done.
|
+ (!display_root->window_manager_state() |
+ ->window_tree() |
+ ->automatically_create_display_roots() && |
+ window->parent() == display_root->root()))) { |
// A new surface for a WindowManager root has been created. This is a |
// special case because ServerWindows created by the WindowServer are not |
// part of a WindowTree. Send the SurfaceId directly to FrameGenerator and |