| Index: ash/display/display_manager.cc
|
| diff --git a/ash/display/display_manager.cc b/ash/display/display_manager.cc
|
| index c407da47751977e3c47a3f80052cf4edbe76b058..8906c23cd8adf979899974c3cfbea3394a21eabe 100644
|
| --- a/ash/display/display_manager.cc
|
| +++ b/ash/display/display_manager.cc
|
| @@ -118,7 +118,7 @@ DisplayManager::DisplayManager()
|
| force_bounds_changed_(false),
|
| change_display_upon_host_resize_(false),
|
| second_display_mode_(EXTENDED),
|
| - mirrored_display_id_(gfx::Display::kInvalidDisplayID),
|
| + mirroring_display_id_(gfx::Display::kInvalidDisplayID),
|
| registered_internal_display_rotation_lock_(false),
|
| registered_internal_display_rotation_(gfx::Display::ROTATE_0),
|
| weak_ptr_factory_(this) {
|
| @@ -240,7 +240,7 @@ DisplayIdPair DisplayManager::GetCurrentDisplayIdPair() const {
|
| // between two checks.
|
| CHECK_EQ(1u, displays_.size());
|
| }
|
| - return std::make_pair(displays_[0].id(), mirrored_display_id_);
|
| + return std::make_pair(displays_[0].id(), mirroring_display_id_);
|
| } else {
|
| CHECK_LE(2u, displays_.size());
|
| int64 id_at_zero = displays_[0].id();
|
| @@ -607,7 +607,7 @@ void DisplayManager::OnNativeDisplaysChanged(
|
|
|
| bool internal_display_connected = false;
|
| num_connected_displays_ = updated_displays.size();
|
| - mirrored_display_id_ = gfx::Display::kInvalidDisplayID;
|
| + mirroring_display_id_ = gfx::Display::kInvalidDisplayID;
|
| mirroring_display_ = gfx::Display();
|
| DisplayInfoList new_display_info_list;
|
| for (DisplayInfoList::const_iterator iter = updated_displays.begin();
|
| @@ -619,7 +619,10 @@ void DisplayManager::OnNativeDisplaysChanged(
|
| gfx::Point origin = iter->bounds_in_native().origin();
|
| if (origins.find(origin) != origins.end()) {
|
| InsertAndUpdateDisplayInfo(*iter);
|
| - mirrored_display_id_ = iter->id();
|
| + mirroring_display_id_ = iter->id();
|
| + mirroring_display_ =
|
| + CreateDisplayFromDisplayInfoById(mirroring_display_id_);
|
| + mirroring_display_.set_mirrored_display_id(new_display_info_list[0].id());
|
| } else {
|
| origins.insert(origin);
|
| new_display_info_list.push_back(*iter);
|
| @@ -693,31 +696,34 @@ void DisplayManager::UpdateDisplays(
|
| // the root window so that it matches the external display's
|
| // resolution. This is necessary in order for scaling to work while
|
| // mirrored.
|
| - int64 mirroing_display_id = gfx::Display::kInvalidDisplayID;
|
| + int64 mirrored_display_id = gfx::Display::kInvalidDisplayID;
|
| + int64 mirroring_display_id = gfx::Display::kInvalidDisplayID;
|
|
|
| if (second_display_mode_ != EXTENDED && new_display_info_list.size() == 2) {
|
| bool zero_is_source =
|
| first_display_id_ == new_display_info_list[0].id() ||
|
| gfx::Display::InternalDisplayId() == new_display_info_list[0].id();
|
| DCHECK_EQ(MIRRORING, second_display_mode_);
|
| - mirrored_display_id_ = new_display_info_list[zero_is_source ? 1 : 0].id();
|
| - mirroing_display_id = mirrored_display_id_;
|
| + mirrored_display_id = new_display_info_list[zero_is_source ? 0 : 1].id();
|
| + mirroring_display_id = new_display_info_list[zero_is_source ? 1 : 0].id();
|
| + mirroring_display_id_ = mirroring_display_id;
|
| }
|
|
|
| while (curr_iter != displays_.end() ||
|
| new_info_iter != new_display_info_list.end()) {
|
| if (new_info_iter != new_display_info_list.end() &&
|
| - mirroing_display_id == new_info_iter->id()) {
|
| + mirroring_display_id == new_info_iter->id()) {
|
| DisplayInfo info = *new_info_iter;
|
| info.SetOverscanInsets(gfx::Insets());
|
| InsertAndUpdateDisplayInfo(info);
|
| mirroring_display_ =
|
| - CreateDisplayFromDisplayInfoById(mirroing_display_id);
|
| + CreateDisplayFromDisplayInfoById(mirroring_display_id);
|
| + mirroring_display_.set_mirrored_display_id(mirrored_display_id);
|
| ++new_info_iter;
|
| // Remove existing external display if it is going to be used as
|
| // mirroring display.
|
| if (curr_iter != displays_.end() &&
|
| - curr_iter->id() == mirroing_display_id) {
|
| + curr_iter->id() == mirroring_display_id) {
|
| removed_displays.push_back(*curr_iter);
|
| ++curr_iter;
|
| }
|
| @@ -933,7 +939,7 @@ size_t DisplayManager::GetNumDisplays() const {
|
| }
|
|
|
| bool DisplayManager::IsMirrored() const {
|
| - return mirrored_display_id_ != gfx::Display::kInvalidDisplayID;
|
| + return mirroring_display_id_ != gfx::Display::kInvalidDisplayID;
|
| }
|
|
|
| const DisplayInfo& DisplayManager::GetDisplayInfo(int64 display_id) const {
|
| @@ -1010,7 +1016,7 @@ void DisplayManager::AddRemoveDisplay() {
|
| "%d+%d-500x400", host_bounds.x(), host_bounds.bottom())));
|
| }
|
| num_connected_displays_ = new_display_info_list.size();
|
| - mirrored_display_id_ = gfx::Display::kInvalidDisplayID;
|
| + mirroring_display_id_ = gfx::Display::kInvalidDisplayID;
|
| mirroring_display_ = gfx::Display();
|
| UpdateDisplays(new_display_info_list);
|
| }
|
| @@ -1041,7 +1047,7 @@ bool DisplayManager::SoftwareMirroringEnabled() const {
|
|
|
| void DisplayManager::SetSecondDisplayMode(SecondDisplayMode mode) {
|
| second_display_mode_ = mode;
|
| - mirrored_display_id_ = gfx::Display::kInvalidDisplayID;
|
| + mirroring_display_id_ = gfx::Display::kInvalidDisplayID;
|
| mirroring_display_ = gfx::Display();
|
| }
|
|
|
| @@ -1050,7 +1056,7 @@ bool DisplayManager::UpdateDisplayBounds(int64 display_id,
|
| if (change_display_upon_host_resize_) {
|
| display_info_[display_id].SetBounds(new_bounds);
|
| // Don't notify observers if the mirrored window has changed.
|
| - if (software_mirroring_enabled() && mirrored_display_id_ == display_id)
|
| + if (software_mirroring_enabled() && mirroring_display_id_ == display_id)
|
| return false;
|
| gfx::Display* display = FindDisplayForId(display_id);
|
| display->SetSize(display_info_[display_id].size_in_pixel());
|
| @@ -1095,6 +1101,10 @@ gfx::Display* DisplayManager::FindDisplayForId(int64 id) {
|
| if ((*iter).id() == id)
|
| return &(*iter);
|
| }
|
| +
|
| + if (id == mirroring_display_id_)
|
| + return &mirroring_display_;
|
| +
|
| DLOG(WARNING) << "Could not find display:" << id;
|
| return NULL;
|
| }
|
| @@ -1102,7 +1112,7 @@ gfx::Display* DisplayManager::FindDisplayForId(int64 id) {
|
| void DisplayManager::AddMirrorDisplayInfoIfAny(
|
| std::vector<DisplayInfo>* display_info_list) {
|
| if (software_mirroring_enabled() && IsMirrored())
|
| - display_info_list->push_back(GetDisplayInfo(mirrored_display_id_));
|
| + display_info_list->push_back(GetDisplayInfo(mirroring_display_id_));
|
| }
|
|
|
| void DisplayManager::InsertAndUpdateDisplayInfo(const DisplayInfo& new_info) {
|
|
|