| Index: services/ui/ws/test_utils.cc
|
| diff --git a/services/ui/ws/test_utils.cc b/services/ui/ws/test_utils.cc
|
| index 914a72fc6bfef0aae509b7196b19740b15b095f4..d29df44fe9c5cc9a0d5a2893fdb4970ae142e3eb 100644
|
| --- a/services/ui/ws/test_utils.cc
|
| +++ b/services/ui/ws/test_utils.cc
|
| @@ -87,13 +87,27 @@ ClientWindowId NextUnusedClientWindowId(WindowTree* tree) {
|
| }
|
| }
|
|
|
| +// Creates a Display with |id| and same attributes as |metrics|.
|
| +display::Display CreateDisplay(int64_t id,
|
| + const display::ViewportMetrics& metrics) {
|
| + display::Display display(id);
|
| + display.set_bounds(metrics.bounds);
|
| + display.set_work_area(metrics.work_area);
|
| + display.set_device_scale_factor(metrics.device_scale_factor);
|
| + display.set_rotation(metrics.rotation);
|
| + display.set_touch_support(metrics.touch_support);
|
| + return display;
|
| +}
|
| +
|
| } // namespace
|
|
|
| // TestScreenManager -------------------------------------------------
|
|
|
| TestScreenManager::TestScreenManager() {}
|
|
|
| -TestScreenManager::~TestScreenManager() {}
|
| +TestScreenManager::~TestScreenManager() {
|
| + display::Screen::SetScreenInstance(nullptr);
|
| +}
|
|
|
| int64_t TestScreenManager::AddDisplay() {
|
| return AddDisplay(MakeViewportMetrics(0, 0, 100, 100, 1.0f));
|
| @@ -104,38 +118,42 @@ int64_t TestScreenManager::AddDisplay(const display::ViewportMetrics& metrics) {
|
| int64_t display_id = display_ids_.empty() ? 1 : *display_ids_.rbegin() + 1;
|
| display_ids_.insert(display_id);
|
|
|
| + // First display added will be the primary display.
|
| + display::DisplayList::Type type = display::DisplayList::Type::NOT_PRIMARY;
|
| + if (display_ids_.size() == 1)
|
| + type = display::DisplayList::Type::PRIMARY;
|
| +
|
| + screen_->display_list().AddDisplay(CreateDisplay(display_id, metrics), type);
|
| delegate_->OnDisplayAdded(display_id, metrics);
|
|
|
| - // First display added will be the primary display.
|
| - if (primary_display_id_ == display::kInvalidDisplayId) {
|
| - primary_display_id_ = display_id;
|
| + if (type == display::DisplayList::Type::PRIMARY)
|
| delegate_->OnPrimaryDisplayChanged(display_id);
|
| - }
|
|
|
| return display_id;
|
| }
|
|
|
| -void TestScreenManager::ModifyDisplay(int64_t id,
|
| +void TestScreenManager::ModifyDisplay(int64_t display_id,
|
| const display::ViewportMetrics& metrics) {
|
| - DCHECK(display_ids_.count(id) == 1);
|
| - delegate_->OnDisplayModified(id, metrics);
|
| + DCHECK(display_ids_.count(display_id) == 1);
|
| + screen_->display_list().UpdateDisplay(CreateDisplay(display_id, metrics));
|
| + delegate_->OnDisplayModified(display_id, metrics);
|
| }
|
|
|
| -void TestScreenManager::RemoveDisplay(int64_t id) {
|
| - DCHECK(display_ids_.count(id) == 1);
|
| - delegate_->OnDisplayRemoved(id);
|
| - display_ids_.erase(id);
|
| +void TestScreenManager::RemoveDisplay(int64_t display_id) {
|
| + DCHECK(display_ids_.count(display_id) == 1);
|
| + screen_->display_list().RemoveDisplay(display_id);
|
| + delegate_->OnDisplayRemoved(display_id);
|
| + display_ids_.erase(display_id);
|
| }
|
|
|
| void TestScreenManager::Init(display::ScreenManagerDelegate* delegate) {
|
| - // Reset
|
| delegate_ = delegate;
|
| - display_ids_.clear();
|
| - primary_display_id_ = display::kInvalidDisplayId;
|
| -}
|
|
|
| -int64_t TestScreenManager::GetPrimaryDisplayId() const {
|
| - return primary_display_id_;
|
| + // Reset everything.
|
| + display_ids_.clear();
|
| + display::Screen::SetScreenInstance(nullptr);
|
| + screen_ = base::MakeUnique<display::ScreenBase>();
|
| + display::Screen::SetScreenInstance(screen_.get());
|
| }
|
|
|
| // TestPlatformDisplayFactory -------------------------------------------------
|
|
|