OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "services/ui/ws/window_manager_window_tree_factory.h" | 5 #include "services/ui/ws/window_manager_window_tree_factory.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "services/ui/ws/window_manager_window_tree_factory_set.h" | 8 #include "services/ui/ws/window_manager_window_tree_factory_set.h" |
9 #include "services/ui/ws/window_server.h" | 9 #include "services/ui/ws/window_server.h" |
10 #include "services/ui/ws/window_server_delegate.h" | |
10 #include "services/ui/ws/window_tree.h" | 11 #include "services/ui/ws/window_tree.h" |
11 | 12 |
12 namespace ui { | 13 namespace ui { |
13 namespace ws { | 14 namespace ws { |
14 | 15 |
15 WindowManagerWindowTreeFactory::WindowManagerWindowTreeFactory( | 16 WindowManagerWindowTreeFactory::WindowManagerWindowTreeFactory( |
16 WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set, | 17 WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set, |
17 const UserId& user_id, | 18 const UserId& user_id, |
18 mojo::InterfaceRequest<mojom::WindowManagerWindowTreeFactory> request) | 19 mojo::InterfaceRequest<mojom::WindowManagerWindowTreeFactory> request) |
19 : WindowManagerWindowTreeFactory(window_manager_window_tree_factory_set, | 20 : WindowManagerWindowTreeFactory(window_manager_window_tree_factory_set, |
(...skipping 11 matching lines...) Expand all Loading... | |
31 if (window_tree_) { | 32 if (window_tree_) { |
32 DVLOG(1) << "CreateWindowTree() called more than once."; | 33 DVLOG(1) << "CreateWindowTree() called more than once."; |
33 return; | 34 return; |
34 } | 35 } |
35 | 36 |
36 // CreateWindowTree() can only be called once, so there is no reason to keep | 37 // CreateWindowTree() can only be called once, so there is no reason to keep |
37 // the binding around. | 38 // the binding around. |
38 if (binding_.is_bound()) | 39 if (binding_.is_bound()) |
39 binding_.Close(); | 40 binding_.Close(); |
40 | 41 |
42 window_manager_window_tree_factory_set_->window_server() | |
43 ->delegate() | |
44 ->OnWillCreateTreeForWindowManager(automatically_create_display_roots); | |
kylechar
2017/04/19 18:06:08
Will this work with multiple connected WMs? I know
sky
2017/04/19 19:30:03
You are correct it would be problematic to have mu
kylechar
2017/04/19 19:47:09
Ah, right it ignores it. Gotcha.
| |
45 | |
41 SetWindowTree(GetWindowServer()->CreateTreeForWindowManager( | 46 SetWindowTree(GetWindowServer()->CreateTreeForWindowManager( |
42 user_id_, std::move(window_tree_request), std::move(window_tree_client), | 47 user_id_, std::move(window_tree_request), std::move(window_tree_client), |
43 automatically_create_display_roots)); | 48 automatically_create_display_roots)); |
44 } | 49 } |
45 | 50 |
46 WindowManagerWindowTreeFactory::WindowManagerWindowTreeFactory( | 51 WindowManagerWindowTreeFactory::WindowManagerWindowTreeFactory( |
47 WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set, | 52 WindowManagerWindowTreeFactorySet* window_manager_window_tree_factory_set, |
48 const UserId& user_id) | 53 const UserId& user_id) |
49 : window_manager_window_tree_factory_set_( | 54 : window_manager_window_tree_factory_set_( |
50 window_manager_window_tree_factory_set), | 55 window_manager_window_tree_factory_set), |
51 user_id_(user_id), | 56 user_id_(user_id), |
52 binding_(this) {} | 57 binding_(this) {} |
53 | 58 |
54 WindowServer* WindowManagerWindowTreeFactory::GetWindowServer() { | 59 WindowServer* WindowManagerWindowTreeFactory::GetWindowServer() { |
55 return window_manager_window_tree_factory_set_->window_server(); | 60 return window_manager_window_tree_factory_set_->window_server(); |
56 } | 61 } |
57 | 62 |
58 void WindowManagerWindowTreeFactory::SetWindowTree(WindowTree* window_tree) { | 63 void WindowManagerWindowTreeFactory::SetWindowTree(WindowTree* window_tree) { |
59 DCHECK(!window_tree_); | 64 DCHECK(!window_tree_); |
60 window_tree_ = window_tree; | 65 window_tree_ = window_tree; |
61 | 66 |
62 window_manager_window_tree_factory_set_ | 67 window_manager_window_tree_factory_set_ |
63 ->OnWindowManagerWindowTreeFactoryReady(this); | 68 ->OnWindowManagerWindowTreeFactoryReady(this); |
64 } | 69 } |
65 | 70 |
66 } // namespace ws | 71 } // namespace ws |
67 } // namespace ui | 72 } // namespace ui |
OLD | NEW |