OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/mus/ws/display.h" | 5 #include "components/mus/ws/display.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/debug/debugger.h" | 10 #include "base/debug/debugger.h" |
11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
12 #include "components/mus/common/types.h" | 12 #include "components/mus/common/types.h" |
13 #include "components/mus/ws/display_binding.h" | 13 #include "components/mus/ws/display_binding.h" |
14 #include "components/mus/ws/display_manager.h" | 14 #include "components/mus/ws/display_manager.h" |
15 #include "components/mus/ws/focus_controller.h" | 15 #include "components/mus/ws/focus_controller.h" |
16 #include "components/mus/ws/platform_display.h" | 16 #include "components/mus/ws/platform_display.h" |
17 #include "components/mus/ws/platform_display_init_params.h" | 17 #include "components/mus/ws/platform_display_init_params.h" |
18 #include "components/mus/ws/window_manager_factory_service.h" | 18 #include "components/mus/ws/window_manager_factory_service.h" |
19 #include "components/mus/ws/window_manager_state.h" | 19 #include "components/mus/ws/window_manager_state.h" |
20 #include "components/mus/ws/window_server.h" | 20 #include "components/mus/ws/window_server.h" |
21 #include "components/mus/ws/window_server_delegate.h" | 21 #include "components/mus/ws/window_server_delegate.h" |
22 #include "components/mus/ws/window_tree.h" | 22 #include "components/mus/ws/window_tree.h" |
23 #include "components/mus/ws/window_tree_binding.h" | 23 #include "components/mus/ws/window_tree_binding.h" |
24 #include "mojo/common/common_type_converters.h" | 24 #include "mojo/common/common_type_converters.h" |
25 #include "services/shell/public/interfaces/connector.mojom.h" | 25 #include "services/shell/public/interfaces/connector.mojom.h" |
26 #include "ui/base/cursor/cursor.h" | 26 #include "ui/base/cursor/cursor.h" |
27 #include "ui/gfx/geometry/mojo/geometry_type_converters.h" | |
28 | 27 |
29 namespace mus { | 28 namespace mus { |
30 namespace ws { | 29 namespace ws { |
31 | 30 |
32 Display::Display(WindowServer* window_server, | 31 Display::Display(WindowServer* window_server, |
33 const PlatformDisplayInitParams& platform_display_init_params) | 32 const PlatformDisplayInitParams& platform_display_init_params) |
34 : id_(window_server->display_manager()->GetAndAdvanceNextDisplayId()), | 33 : id_(window_server->display_manager()->GetAndAdvanceNextDisplayId()), |
35 window_server_(window_server), | 34 window_server_(window_server), |
36 platform_display_(PlatformDisplay::Create(platform_display_init_params)), | 35 platform_display_(PlatformDisplay::Create(platform_display_init_params)), |
37 last_cursor_(ui::kCursorNone) { | 36 last_cursor_(ui::kCursorNone) { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 } | 75 } |
77 | 76 |
78 const DisplayManager* Display::display_manager() const { | 77 const DisplayManager* Display::display_manager() const { |
79 return window_server_->display_manager(); | 78 return window_server_->display_manager(); |
80 } | 79 } |
81 | 80 |
82 mojom::DisplayPtr Display::ToMojomDisplay() const { | 81 mojom::DisplayPtr Display::ToMojomDisplay() const { |
83 mojom::DisplayPtr display_ptr = mojom::Display::New(); | 82 mojom::DisplayPtr display_ptr = mojom::Display::New(); |
84 display_ptr = mojom::Display::New(); | 83 display_ptr = mojom::Display::New(); |
85 display_ptr->id = id_; | 84 display_ptr->id = id_; |
86 display_ptr->bounds = mojo::Rect::New(); | |
87 // TODO(sky): Display should know it's origin. | 85 // TODO(sky): Display should know it's origin. |
88 display_ptr->bounds->x = 0; | 86 display_ptr->bounds.SetRect(0, 0, root_->bounds().size().width(), |
89 display_ptr->bounds->y = 0; | 87 root_->bounds().size().height()); |
90 display_ptr->bounds->width = root_->bounds().size().width(); | |
91 display_ptr->bounds->height = root_->bounds().size().height(); | |
92 // TODO(sky): window manager needs an API to set the work area. | 88 // TODO(sky): window manager needs an API to set the work area. |
93 display_ptr->work_area = display_ptr->bounds.Clone(); | 89 display_ptr->work_area = display_ptr->bounds; |
94 display_ptr->device_pixel_ratio = platform_display_->GetDeviceScaleFactor(); | 90 display_ptr->device_pixel_ratio = platform_display_->GetDeviceScaleFactor(); |
95 display_ptr->rotation = platform_display_->GetRotation(); | 91 display_ptr->rotation = platform_display_->GetRotation(); |
96 // TODO(sky): make this real. | 92 // TODO(sky): make this real. |
97 display_ptr->is_primary = true; | 93 display_ptr->is_primary = true; |
98 // TODO(sky): make this real. | 94 // TODO(sky): make this real. |
99 display_ptr->touch_support = mojom::TouchSupport::UNKNOWN; | 95 display_ptr->touch_support = mojom::TouchSupport::UNKNOWN; |
100 display_ptr->frame_decoration_values = mojom::FrameDecorationValues::New(); | 96 display_ptr->frame_decoration_values = mojom::FrameDecorationValues::New(); |
101 display_ptr->frame_decoration_values->normal_client_area_insets = | |
102 mojo::Insets::New(); | |
103 display_ptr->frame_decoration_values->maximized_client_area_insets = | |
104 mojo::Insets::New(); | |
105 return display_ptr; | 97 return display_ptr; |
106 } | 98 } |
107 | 99 |
108 void Display::SchedulePaint(const ServerWindow* window, | 100 void Display::SchedulePaint(const ServerWindow* window, |
109 const gfx::Rect& bounds) { | 101 const gfx::Rect& bounds) { |
110 DCHECK(root_->Contains(window)); | 102 DCHECK(root_->Contains(window)); |
111 platform_display_->SchedulePaint(window, bounds); | 103 platform_display_->SchedulePaint(window, bounds); |
112 } | 104 } |
113 | 105 |
114 void Display::ScheduleSurfaceDestruction(ServerWindow* window) { | 106 void Display::ScheduleSurfaceDestruction(ServerWindow* window) { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 pair.second->OnWillDestroyTree(tree); | 202 pair.second->OnWillDestroyTree(tree); |
211 } | 203 } |
212 | 204 |
213 void Display::UpdateNativeCursor(int32_t cursor_id) { | 205 void Display::UpdateNativeCursor(int32_t cursor_id) { |
214 if (cursor_id != last_cursor_) { | 206 if (cursor_id != last_cursor_) { |
215 platform_display_->SetCursorById(cursor_id); | 207 platform_display_->SetCursorById(cursor_id); |
216 last_cursor_ = cursor_id; | 208 last_cursor_ = cursor_id; |
217 } | 209 } |
218 } | 210 } |
219 | 211 |
220 void Display::SetSize(mojo::SizePtr size) { | 212 void Display::SetSize(const gfx::Size& size) { |
221 platform_display_->SetViewportSize(size.To<gfx::Size>()); | 213 platform_display_->SetViewportSize(size); |
222 } | 214 } |
223 | 215 |
224 void Display::SetTitle(const mojo::String& title) { | 216 void Display::SetTitle(const mojo::String& title) { |
225 platform_display_->SetTitle(title.To<base::string16>()); | 217 platform_display_->SetTitle(title.To<base::string16>()); |
226 } | 218 } |
227 | 219 |
228 void Display::InitWindowManagersIfNecessary() { | 220 void Display::InitWindowManagersIfNecessary() { |
229 if (!init_called_ || !root_) | 221 if (!init_called_ || !root_) |
230 return; | 222 return; |
231 | 223 |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 DCHECK_EQ(0u, window_manager_state_map_.count(id)); | 444 DCHECK_EQ(0u, window_manager_state_map_.count(id)); |
453 } | 445 } |
454 | 446 |
455 void Display::OnWindowManagerFactorySet(WindowManagerFactoryService* service) { | 447 void Display::OnWindowManagerFactorySet(WindowManagerFactoryService* service) { |
456 if (!binding_) | 448 if (!binding_) |
457 CreateWindowManagerStateFromService(service); | 449 CreateWindowManagerStateFromService(service); |
458 } | 450 } |
459 | 451 |
460 } // namespace ws | 452 } // namespace ws |
461 } // namespace mus | 453 } // namespace mus |
OLD | NEW |