| Index: services/ui/ws/user_display_manager.cc
|
| diff --git a/services/ui/ws/user_display_manager.cc b/services/ui/ws/user_display_manager.cc
|
| index 344b892e5cfe7ed3c221011562289ba6a7166c65..9eb5a8558cf97a11055011c0f72cf0c7bf663551 100644
|
| --- a/services/ui/ws/user_display_manager.cc
|
| +++ b/services/ui/ws/user_display_manager.cc
|
| @@ -6,10 +6,9 @@
|
|
|
| #include <utility>
|
|
|
| -#include "services/ui/display/screen_manager.h"
|
| -#include "services/ui/ws/display.h"
|
| -#include "services/ui/ws/display_manager.h"
|
| #include "services/ui/ws/user_display_manager_delegate.h"
|
| +#include "ui/display/display.h"
|
| +#include "ui/display/screen.h"
|
| #include "ui/display/types/display_constants.h"
|
|
|
| namespace ui {
|
| @@ -26,13 +25,18 @@ std::vector<mojom::WsDisplayPtr> CloneDisplays(
|
| return result;
|
| }
|
|
|
| +int64_t GetInternalDisplayId() {
|
| + if (!display::Display::HasInternalDisplay())
|
| + return display::kInvalidDisplayId;
|
| +
|
| + return display::Display::InternalDisplayId();
|
| +}
|
| +
|
| } // namespace
|
|
|
| -UserDisplayManager::UserDisplayManager(ws::DisplayManager* display_manager,
|
| - UserDisplayManagerDelegate* delegate,
|
| +UserDisplayManager::UserDisplayManager(UserDisplayManagerDelegate* delegate,
|
| const UserId& user_id)
|
| - : display_manager_(display_manager),
|
| - delegate_(delegate),
|
| + : delegate_(delegate),
|
| user_id_(user_id),
|
| got_valid_frame_decorations_(
|
| delegate->GetFrameDecorationsForUser(user_id, nullptr)) {}
|
| @@ -59,12 +63,12 @@ void UserDisplayManager::AddDisplayManagerBinding(
|
| display_manager_bindings_.AddBinding(this, std::move(request));
|
| }
|
|
|
| -void UserDisplayManager::OnDisplayUpdate(Display* display) {
|
| +void UserDisplayManager::OnDisplayUpdate(const display::Display& display) {
|
| if (!got_valid_frame_decorations_)
|
| return;
|
|
|
| std::vector<mojom::WsDisplayPtr> displays(1);
|
| - displays[0] = GetWsDisplayPtr(*display);
|
| + displays[0] = ToWsDisplayPtr(display);
|
|
|
| display_manager_observers_.ForAllPtrs(
|
| [&displays](mojom::DisplayManagerObserver* observer) {
|
| @@ -72,13 +76,13 @@ void UserDisplayManager::OnDisplayUpdate(Display* display) {
|
| });
|
| }
|
|
|
| -void UserDisplayManager::OnWillDestroyDisplay(Display* display) {
|
| +void UserDisplayManager::OnWillDestroyDisplay(int64_t display_id) {
|
| if (!got_valid_frame_decorations_)
|
| return;
|
|
|
| display_manager_observers_.ForAllPtrs(
|
| - [&display](mojom::DisplayManagerObserver* observer) {
|
| - observer->OnDisplayRemoved(display->GetId());
|
| + [display_id](mojom::DisplayManagerObserver* observer) {
|
| + observer->OnDisplayRemoved(display_id);
|
| });
|
| }
|
|
|
| @@ -110,35 +114,32 @@ void UserDisplayManager::OnObserverAdded(
|
| CallOnDisplays(observer);
|
| }
|
|
|
| -mojom::WsDisplayPtr UserDisplayManager::GetWsDisplayPtr(
|
| - const Display& display) {
|
| +mojom::WsDisplayPtr UserDisplayManager::ToWsDisplayPtr(
|
| + const display::Display& display) {
|
| mojom::WsDisplayPtr ws_display = mojom::WsDisplay::New();
|
| - ws_display->display = display.ToDisplay();
|
| + ws_display->display = display;
|
| delegate_->GetFrameDecorationsForUser(user_id_,
|
| &ws_display->frame_decoration_values);
|
| return ws_display;
|
| }
|
|
|
| std::vector<mojom::WsDisplayPtr> UserDisplayManager::GetAllDisplays() {
|
| - const auto& displays = display_manager_->displays();
|
| - std::vector<mojom::WsDisplayPtr> display_ptrs;
|
| - display_ptrs.reserve(displays.size());
|
| + const auto& displays = display::Screen::GetScreen()->GetAllDisplays();
|
|
|
| - // TODO(sky): need ordering!
|
| - for (Display* display : displays) {
|
| - display_ptrs.push_back(GetWsDisplayPtr(*display));
|
| - }
|
| + std::vector<mojom::WsDisplayPtr> ws_display;
|
| + ws_display.reserve(displays.size());
|
| +
|
| + for (const auto& display : displays)
|
| + ws_display.push_back(ToWsDisplayPtr(display));
|
|
|
| - return display_ptrs;
|
| + return ws_display;
|
| }
|
|
|
| void UserDisplayManager::CallOnDisplays(
|
| mojom::DisplayManagerObserver* observer) {
|
| - // TODO(kylechar): Pass internal display id to clients here.
|
| - observer->OnDisplays(
|
| - GetAllDisplays(),
|
| - display::ScreenManager::GetInstance()->GetPrimaryDisplayId(),
|
| - display::kInvalidDisplayId);
|
| + observer->OnDisplays(GetAllDisplays(),
|
| + display::Screen::GetScreen()->GetPrimaryDisplay().id(),
|
| + GetInternalDisplayId());
|
| }
|
|
|
| } // namespace ws
|
|
|