| Index: ash/display/display_manager.cc
|
| diff --git a/ash/display/display_manager.cc b/ash/display/display_manager.cc
|
| index 2731144a99536a88dbe9322bc2730d9f6f082386..c425c848df0152711b2187f1911e4d23ecc9a4eb 100644
|
| --- a/ash/display/display_manager.cc
|
| +++ b/ash/display/display_manager.cc
|
| @@ -11,7 +11,8 @@
|
|
|
| #include "ash/ash_switches.h"
|
| #include "ash/display/display_layout_store.h"
|
| -#include "ash/screen_ash.h"
|
| +#include "ash/display/screen_ash.h"
|
| +#include "ash/screen_util.h"
|
| #include "ash/shell.h"
|
| #include "base/auto_reset.h"
|
| #include "base/command_line.h"
|
| @@ -143,6 +144,8 @@ using std::vector;
|
|
|
| DisplayManager::DisplayManager()
|
| : delegate_(NULL),
|
| + screen_ash_(new ScreenAsh),
|
| + screen_(screen_ash_.get()),
|
| layout_store_(new DisplayLayoutStore),
|
| first_display_id_(gfx::Display::kInvalidDisplayID),
|
| num_connected_displays_(0),
|
| @@ -302,7 +305,7 @@ void DisplayManager::SetLayoutForCurrentDisplays(
|
| DCHECK_EQ(2U, GetNumDisplays());
|
| if (GetNumDisplays() < 2)
|
| return;
|
| - const gfx::Display& primary = Shell::GetScreen()->GetPrimaryDisplay();
|
| + const gfx::Display& primary = screen_->GetPrimaryDisplay();
|
| const DisplayIdPair pair = GetCurrentDisplayIdPair();
|
| // Invert if the primary was swapped.
|
| DisplayLayout to_set = pair.first == primary.id() ?
|
| @@ -322,13 +325,12 @@ void DisplayManager::SetLayoutForCurrentDisplays(
|
| const DisplayLayout layout = GetCurrentDisplayLayout();
|
| UpdateDisplayBoundsForLayoutById(
|
| layout, primary,
|
| - ScreenAsh::GetSecondaryDisplay().id());
|
| + ScreenUtil::GetSecondaryDisplay().id());
|
|
|
| - //UpdateCurrentDisplayBoundsForLayout();
|
| // Primary's bounds stay the same. Just notify bounds change
|
| // on the secondary.
|
| - Shell::GetInstance()->screen()->NotifyBoundsChanged(
|
| - ScreenAsh::GetSecondaryDisplay());
|
| + screen_ash_->NotifyBoundsChanged(
|
| + ScreenUtil::GetSecondaryDisplay());
|
| if (delegate_)
|
| delegate_->PostDisplayConfigurationChange();
|
| }
|
| @@ -751,7 +753,7 @@ void DisplayManager::UpdateDisplays(
|
|
|
| for (DisplayList::const_reverse_iterator iter = removed_displays.rbegin();
|
| iter != removed_displays.rend(); ++iter) {
|
| - Shell::GetInstance()->screen()->NotifyDisplayRemoved(displays_.back());
|
| + screen_ash_->NotifyDisplayRemoved(displays_.back());
|
| displays_.pop_back();
|
| }
|
| // Close the non desktop window here to avoid creating two compositor on
|
| @@ -760,7 +762,7 @@ void DisplayManager::UpdateDisplays(
|
| non_desktop_display_updater.reset();
|
| for (std::vector<size_t>::iterator iter = added_display_indices.begin();
|
| iter != added_display_indices.end(); ++iter) {
|
| - Shell::GetInstance()->screen()->NotifyDisplayAdded(displays_[*iter]);
|
| + screen_ash_->NotifyDisplayAdded(displays_[*iter]);
|
| }
|
| // Create the non destkop window after all displays are added so that
|
| // it can mirror the display newly added. This can happen when switching
|
| @@ -768,7 +770,7 @@ void DisplayManager::UpdateDisplays(
|
| non_desktop_display_updater.reset();
|
| for (std::vector<size_t>::iterator iter = changed_display_indices.begin();
|
| iter != changed_display_indices.end(); ++iter) {
|
| - Shell::GetInstance()->screen()->NotifyBoundsChanged(displays_[*iter]);
|
| + screen_ash_->NotifyBoundsChanged(displays_[*iter]);
|
| }
|
| if (delegate_)
|
| delegate_->PostDisplayConfigurationChange();
|
| @@ -915,7 +917,7 @@ bool DisplayManager::UpdateDisplayBounds(int64 display_id,
|
| return false;
|
| gfx::Display* display = FindDisplayForId(display_id);
|
| display->SetSize(display_info_[display_id].size_in_pixel());
|
| - Shell::GetInstance()->screen()->NotifyBoundsChanged(*display);
|
| + screen_ash_->NotifyBoundsChanged(*display);
|
| return true;
|
| }
|
| return false;
|
| @@ -925,6 +927,10 @@ void DisplayManager::CreateMirrorWindowIfAny() {
|
| NonDesktopDisplayUpdater updater(this, delegate_);
|
| }
|
|
|
| +gfx::Screen* DisplayManager::CreateScreenForShutdown() const{
|
| + return screen_ash_->CloneForShutdown();
|
| +}
|
| +
|
| gfx::Display* DisplayManager::FindDisplayForId(int64 id) {
|
| for (DisplayList::iterator iter = displays_.begin();
|
| iter != displays_.end(); ++iter) {
|
|
|