Chromium Code Reviews| 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 "services/ui/ws/display.h" | 5 #include "services/ui/ws/display.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 26 #include "services/ui/ws/window_server_delegate.h" | 26 #include "services/ui/ws/window_server_delegate.h" |
| 27 #include "services/ui/ws/window_tree.h" | 27 #include "services/ui/ws/window_tree.h" |
| 28 #include "services/ui/ws/window_tree_binding.h" | 28 #include "services/ui/ws/window_tree_binding.h" |
| 29 #include "ui/base/cursor/cursor.h" | 29 #include "ui/base/cursor/cursor.h" |
| 30 | 30 |
| 31 namespace ui { | 31 namespace ui { |
| 32 namespace ws { | 32 namespace ws { |
| 33 | 33 |
| 34 Display::Display(WindowServer* window_server, | 34 Display::Display(WindowServer* window_server, |
| 35 const PlatformDisplayInitParams& platform_display_init_params) | 35 const PlatformDisplayInitParams& platform_display_init_params) |
| 36 : id_(window_server->display_manager()->GetAndAdvanceNextDisplayId()), | 36 : window_server_(window_server), |
| 37 window_server_(window_server), | |
| 38 platform_display_(PlatformDisplay::Create(platform_display_init_params)), | 37 platform_display_(PlatformDisplay::Create(platform_display_init_params)), |
| 39 last_cursor_(ui::kCursorNone) { | 38 last_cursor_(ui::kCursorNone) { |
| 40 platform_display_->Init(this); | 39 platform_display_->Init(this); |
| 41 | 40 |
| 42 window_server_->window_manager_window_tree_factory_set()->AddObserver(this); | 41 window_server_->window_manager_window_tree_factory_set()->AddObserver(this); |
| 43 window_server_->user_id_tracker()->AddObserver(this); | 42 window_server_->user_id_tracker()->AddObserver(this); |
| 44 } | 43 } |
| 45 | 44 |
| 46 Display::~Display() { | 45 Display::~Display() { |
| 47 window_server_->user_id_tracker()->RemoveObserver(this); | 46 window_server_->user_id_tracker()->RemoveObserver(this); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 66 } | 65 } |
| 67 } | 66 } |
| 68 | 67 |
| 69 void Display::Init(std::unique_ptr<DisplayBinding> binding) { | 68 void Display::Init(std::unique_ptr<DisplayBinding> binding) { |
| 70 init_called_ = true; | 69 init_called_ = true; |
| 71 binding_ = std::move(binding); | 70 binding_ = std::move(binding); |
| 72 display_manager()->AddDisplay(this); | 71 display_manager()->AddDisplay(this); |
| 73 InitWindowManagerDisplayRootsIfNecessary(); | 72 InitWindowManagerDisplayRootsIfNecessary(); |
| 74 } | 73 } |
| 75 | 74 |
| 75 int64_t Display::GetId() const { | |
|
msw
2016/07/28 19:01:02
optional nit: this seems like it'd be okay as a si
kylechar
2016/07/28 19:20:16
I'll probably leave it like this, it better convey
| |
| 76 return platform_display_->id(); | |
| 77 } | |
| 78 | |
| 76 DisplayManager* Display::display_manager() { | 79 DisplayManager* Display::display_manager() { |
| 77 return window_server_->display_manager(); | 80 return window_server_->display_manager(); |
| 78 } | 81 } |
| 79 | 82 |
| 80 const DisplayManager* Display::display_manager() const { | 83 const DisplayManager* Display::display_manager() const { |
| 81 return window_server_->display_manager(); | 84 return window_server_->display_manager(); |
| 82 } | 85 } |
| 83 | 86 |
| 84 mojom::WsDisplayPtr Display::ToWsDisplay() const { | 87 mojom::WsDisplayPtr Display::ToWsDisplay() const { |
| 85 mojom::WsDisplayPtr display_ptr = mojom::WsDisplay::New(); | 88 mojom::WsDisplayPtr display_ptr = mojom::WsDisplay::New(); |
| 86 | 89 |
| 87 display_ptr->display = ToDisplay(); | 90 display_ptr->display = ToDisplay(); |
| 88 | 91 |
| 89 // TODO(sky): make this real. | 92 // TODO(sky): make this real. |
| 90 display_ptr->is_primary = true; | 93 display_ptr->is_primary = true; |
| 91 // TODO(sky): make this real. | 94 // TODO(sky): make this real. |
| 92 display_ptr->frame_decoration_values = mojom::FrameDecorationValues::New(); | 95 display_ptr->frame_decoration_values = mojom::FrameDecorationValues::New(); |
| 93 return display_ptr; | 96 return display_ptr; |
| 94 } | 97 } |
| 95 | 98 |
| 96 ::display::Display Display::ToDisplay() const { | 99 ::display::Display Display::ToDisplay() const { |
| 97 ::display::Display display(id_); | 100 ::display::Display display(GetId()); |
| 98 | 101 |
| 99 // TODO(sky): Display should know its origin. | 102 // TODO(sky): Display should know its origin. |
| 100 display.set_bounds(gfx::Rect(0, 0, root_->bounds().size().width(), | 103 display.set_bounds(gfx::Rect(0, 0, root_->bounds().size().width(), |
| 101 root_->bounds().size().height())); | 104 root_->bounds().size().height())); |
| 102 // TODO(sky): window manager needs an API to set the work area. | 105 // TODO(sky): window manager needs an API to set the work area. |
| 103 display.set_work_area(display.bounds()); | 106 display.set_work_area(display.bounds()); |
| 104 display.set_device_scale_factor(platform_display_->GetDeviceScaleFactor()); | 107 display.set_device_scale_factor(platform_display_->GetDeviceScaleFactor()); |
| 105 display.set_rotation(platform_display_->GetRotation()); | 108 display.set_rotation(platform_display_->GetRotation()); |
| 106 display.set_touch_support( | 109 display.set_touch_support( |
| 107 ::display::Display::TouchSupport::TOUCH_SUPPORT_UNKNOWN); | 110 ::display::Display::TouchSupport::TOUCH_SUPPORT_UNKNOWN); |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 127 } | 130 } |
| 128 | 131 |
| 129 ::display::Display::Rotation Display::GetRotation() const { | 132 ::display::Display::Rotation Display::GetRotation() const { |
| 130 return platform_display_->GetRotation(); | 133 return platform_display_->GetRotation(); |
| 131 } | 134 } |
| 132 | 135 |
| 133 gfx::Size Display::GetSize() const { | 136 gfx::Size Display::GetSize() const { |
| 134 return root_->bounds().size(); | 137 return root_->bounds().size(); |
| 135 } | 138 } |
| 136 | 139 |
| 137 int64_t Display::GetPlatformDisplayId() const { | |
| 138 return platform_display_->GetDisplayId(); | |
| 139 } | |
| 140 | |
| 141 ServerWindow* Display::GetRootWithId(const WindowId& id) { | 140 ServerWindow* Display::GetRootWithId(const WindowId& id) { |
| 142 if (id == root_->id()) | 141 if (id == root_->id()) |
| 143 return root_.get(); | 142 return root_.get(); |
| 144 for (auto& pair : window_manager_display_root_map_) { | 143 for (auto& pair : window_manager_display_root_map_) { |
| 145 if (pair.second->root()->id() == id) | 144 if (pair.second->root()->id() == id) |
| 146 return pair.second->root(); | 145 return pair.second->root(); |
| 147 } | 146 } |
| 148 return nullptr; | 147 return nullptr; |
| 149 } | 148 } |
| 150 | 149 |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 424 } | 423 } |
| 425 | 424 |
| 426 void Display::OnWindowManagerWindowTreeFactoryReady( | 425 void Display::OnWindowManagerWindowTreeFactoryReady( |
| 427 WindowManagerWindowTreeFactory* factory) { | 426 WindowManagerWindowTreeFactory* factory) { |
| 428 if (!binding_) | 427 if (!binding_) |
| 429 CreateWindowManagerDisplayRootFromFactory(factory); | 428 CreateWindowManagerDisplayRootFromFactory(factory); |
| 430 } | 429 } |
| 431 | 430 |
| 432 } // namespace ws | 431 } // namespace ws |
| 433 } // namespace ui | 432 } // namespace ui |
| OLD | NEW |