OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/display/display_manager.h" | 5 #include "ash/display/display_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 display_changes[updated_index] = metrics; | 787 display_changes[updated_index] = metrics; |
788 } | 788 } |
789 } | 789 } |
790 } | 790 } |
791 | 791 |
792 active_display_list_ = new_displays; | 792 active_display_list_ = new_displays; |
793 | 793 |
794 RefreshFontParams(); | 794 RefreshFontParams(); |
795 base::AutoReset<bool> resetter(&change_display_upon_host_resize_, false); | 795 base::AutoReset<bool> resetter(&change_display_upon_host_resize_, false); |
796 | 796 |
| 797 int active_display_list_size = active_display_list_.size(); |
797 // Temporarily add displays to be removed because display object | 798 // Temporarily add displays to be removed because display object |
798 // being removed are accessed during shutting down the root. | 799 // being removed are accessed during shutting down the root. |
799 active_display_list_.insert(active_display_list_.end(), | 800 active_display_list_.insert(active_display_list_.end(), |
800 removed_displays.begin(), removed_displays.end()); | 801 removed_displays.begin(), removed_displays.end()); |
801 | 802 |
802 for (DisplayList::const_reverse_iterator iter = removed_displays.rbegin(); | 803 for (const auto& display : removed_displays) |
803 iter != removed_displays.rend(); ++iter) { | 804 screen_->NotifyDisplayRemoved(display); |
804 screen_->NotifyDisplayRemoved(active_display_list_.back()); | |
805 active_display_list_.pop_back(); | |
806 } | |
807 | 805 |
808 for (std::vector<size_t>::iterator iter = added_display_indices.begin(); | 806 for (size_t index : added_display_indices) |
809 iter != added_display_indices.end(); ++iter) { | 807 screen_->NotifyDisplayAdded(active_display_list_[index]); |
810 screen_->NotifyDisplayAdded(active_display_list_[*iter]); | 808 |
811 } | 809 active_display_list_.resize(active_display_list_size); |
812 | 810 |
813 bool notify_primary_change = | 811 bool notify_primary_change = |
814 delegate_ ? old_primary.id() != screen_->GetPrimaryDisplay().id() : false; | 812 delegate_ ? old_primary.id() != screen_->GetPrimaryDisplay().id() : false; |
815 | 813 |
816 for (std::map<size_t, uint32_t>::iterator iter = display_changes.begin(); | 814 for (std::map<size_t, uint32_t>::iterator iter = display_changes.begin(); |
817 iter != display_changes.end(); | 815 iter != display_changes.end(); |
818 ++iter) { | 816 ++iter) { |
819 uint32_t metrics = iter->second; | 817 uint32_t metrics = iter->second; |
820 const gfx::Display& updated_display = active_display_list_[iter->first]; | 818 const gfx::Display& updated_display = active_display_list_[iter->first]; |
821 | 819 |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1314 gfx::Rect(new_secondary_origin, secondary_bounds.size())); | 1312 gfx::Rect(new_secondary_origin, secondary_bounds.size())); |
1315 secondary_display->UpdateWorkAreaFromInsets(insets); | 1313 secondary_display->UpdateWorkAreaFromInsets(insets); |
1316 } | 1314 } |
1317 | 1315 |
1318 void DisplayManager::RunPendingTasksForTest() { | 1316 void DisplayManager::RunPendingTasksForTest() { |
1319 if (!software_mirroring_display_list_.empty()) | 1317 if (!software_mirroring_display_list_.empty()) |
1320 base::RunLoop().RunUntilIdle(); | 1318 base::RunLoop().RunUntilIdle(); |
1321 } | 1319 } |
1322 | 1320 |
1323 } // namespace ash | 1321 } // namespace ash |
OLD | NEW |