Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: ash/display/display_manager.cc

Issue 2254603002: Temporary fix to return only the active displays. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Temporary fix to return only the active displays. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/display/display_manager.h ('k') | ash/display/screen_ash.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <limits> 9 #include <limits>
10 #include <map> 10 #include <map>
(...skipping 767 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 uint32_t metrics = display::DisplayObserver::DISPLAY_METRIC_BOUNDS | 778 uint32_t metrics = display::DisplayObserver::DISPLAY_METRIC_BOUNDS |
779 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA; 779 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA;
780 if (display_changes.find(updated_index) != display_changes.end()) 780 if (display_changes.find(updated_index) != display_changes.end())
781 metrics |= display_changes[updated_index]; 781 metrics |= display_changes[updated_index];
782 782
783 display_changes[updated_index] = metrics; 783 display_changes[updated_index] = metrics;
784 } 784 }
785 } 785 }
786 786
787 active_display_list_ = new_displays; 787 active_display_list_ = new_displays;
788 active_only_display_list_ = active_display_list_;
788 789
789 RefreshFontParams(); 790 RefreshFontParams();
790 base::AutoReset<bool> resetter(&change_display_upon_host_resize_, false); 791 base::AutoReset<bool> resetter(&change_display_upon_host_resize_, false);
791 792
792 int active_display_list_size = active_display_list_.size(); 793 int active_display_list_size = active_display_list_.size();
794 is_updating_display_list_ = true;
793 // Temporarily add displays to be removed because display object 795 // Temporarily add displays to be removed because display object
794 // being removed are accessed during shutting down the root. 796 // being removed are accessed during shutting down the root.
795 active_display_list_.insert(active_display_list_.end(), 797 active_display_list_.insert(active_display_list_.end(),
796 removed_displays.begin(), removed_displays.end()); 798 removed_displays.begin(), removed_displays.end());
797 799
798 for (const auto& display : removed_displays) 800 for (const auto& display : removed_displays)
799 screen_->NotifyDisplayRemoved(display); 801 screen_->NotifyDisplayRemoved(display);
800 802
801 for (size_t index : added_display_indices) 803 for (size_t index : added_display_indices)
802 screen_->NotifyDisplayAdded(active_display_list_[index]); 804 screen_->NotifyDisplayAdded(active_display_list_[index]);
803 805
804 active_display_list_.resize(active_display_list_size); 806 active_display_list_.resize(active_display_list_size);
807 is_updating_display_list_ = false;
805 808
806 bool notify_primary_change = 809 bool notify_primary_change =
807 delegate_ ? old_primary.id() != screen_->GetPrimaryDisplay().id() : false; 810 delegate_ ? old_primary.id() != screen_->GetPrimaryDisplay().id() : false;
808 811
809 for (std::map<size_t, uint32_t>::iterator iter = display_changes.begin(); 812 for (std::map<size_t, uint32_t>::iterator iter = display_changes.begin();
810 iter != display_changes.end(); ++iter) { 813 iter != display_changes.end(); ++iter) {
811 uint32_t metrics = iter->second; 814 uint32_t metrics = iter->second;
812 const display::Display& updated_display = active_display_list_[iter->first]; 815 const display::Display& updated_display = active_display_list_[iter->first];
813 816
814 if (notify_primary_change && 817 if (notify_primary_change &&
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
1349 layout.ApplyToDisplayList(display_list, updated_ids, 1352 layout.ApplyToDisplayList(display_list, updated_ids,
1350 kMinimumOverlapForInvalidOffset); 1353 kMinimumOverlapForInvalidOffset);
1351 } 1354 }
1352 1355
1353 void DisplayManager::RunPendingTasksForTest() { 1356 void DisplayManager::RunPendingTasksForTest() {
1354 if (!software_mirroring_display_list_.empty()) 1357 if (!software_mirroring_display_list_.empty())
1355 base::RunLoop().RunUntilIdle(); 1358 base::RunLoop().RunUntilIdle();
1356 } 1359 }
1357 1360
1358 } // namespace ash 1361 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_manager.h ('k') | ash/display/screen_ash.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698