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

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

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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/display_manager_unittest.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 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 return true; 478 return true;
479 } 479 }
480 480
481 bool DisplayManager::IsDisplayUIScalingEnabled() const { 481 bool DisplayManager::IsDisplayUIScalingEnabled() const {
482 return GetDisplayIdForUIScaling() != display::Display::kInvalidDisplayID; 482 return GetDisplayIdForUIScaling() != display::Display::kInvalidDisplayID;
483 } 483 }
484 484
485 gfx::Insets DisplayManager::GetOverscanInsets(int64_t display_id) const { 485 gfx::Insets DisplayManager::GetOverscanInsets(int64_t display_id) const {
486 std::map<int64_t, DisplayInfo>::const_iterator it = 486 std::map<int64_t, DisplayInfo>::const_iterator it =
487 display_info_.find(display_id); 487 display_info_.find(display_id);
488 return (it != display_info_.end()) ? 488 return (it != display_info_.end()) ? it->second.overscan_insets_in_dip()
489 it->second.overscan_insets_in_dip() : gfx::Insets(); 489 : gfx::Insets();
490 } 490 }
491 491
492 void DisplayManager::SetColorCalibrationProfile( 492 void DisplayManager::SetColorCalibrationProfile(
493 int64_t display_id, 493 int64_t display_id,
494 ui::ColorCalibrationProfile profile) { 494 ui::ColorCalibrationProfile profile) {
495 #if defined(OS_CHROMEOS) 495 #if defined(OS_CHROMEOS)
496 if (!display_info_[display_id].IsColorProfileAvailable(profile)) 496 if (!display_info_[display_id].IsColorProfileAvailable(profile))
497 return; 497 return;
498 498
499 if (delegate_) 499 if (delegate_)
500 delegate_->PreDisplayConfigurationChange(false); 500 delegate_->PreDisplayConfigurationChange(false);
501 // Just sets color profile if it's not running on ChromeOS (like tests). 501 // Just sets color profile if it's not running on ChromeOS (like tests).
502 if (!base::SysInfo::IsRunningOnChromeOS() || 502 if (!base::SysInfo::IsRunningOnChromeOS() ||
503 Shell::GetInstance()->display_configurator()->SetColorCalibrationProfile( 503 Shell::GetInstance()->display_configurator()->SetColorCalibrationProfile(
504 display_id, profile)) { 504 display_id, profile)) {
505 display_info_[display_id].SetColorProfile(profile); 505 display_info_[display_id].SetColorProfile(profile);
506 UMA_HISTOGRAM_ENUMERATION( 506 UMA_HISTOGRAM_ENUMERATION("ChromeOS.Display.ColorProfile", profile,
507 "ChromeOS.Display.ColorProfile", profile, ui::NUM_COLOR_PROFILES); 507 ui::NUM_COLOR_PROFILES);
508 } 508 }
509 if (delegate_) 509 if (delegate_)
510 delegate_->PostDisplayConfigurationChange(); 510 delegate_->PostDisplayConfigurationChange();
511 #endif 511 #endif
512 } 512 }
513 513
514 void DisplayManager::OnNativeDisplaysChanged( 514 void DisplayManager::OnNativeDisplaysChanged(
515 const std::vector<DisplayInfo>& updated_displays) { 515 const std::vector<DisplayInfo>& updated_displays) {
516 if (updated_displays.empty()) { 516 if (updated_displays.empty()) {
517 VLOG(1) << "OnNativeDisplaysChanged(0): # of current displays=" 517 VLOG(1) << "OnNativeDisplaysChanged(0): # of current displays="
(...skipping 30 matching lines...) Expand all
548 << ") [0]=" << updated_displays[0].ToString() 548 << ") [0]=" << updated_displays[0].ToString()
549 << ", [1]=" << updated_displays[1].ToString(); 549 << ", [1]=" << updated_displays[1].ToString();
550 } 550 }
551 551
552 bool internal_display_connected = false; 552 bool internal_display_connected = false;
553 num_connected_displays_ = updated_displays.size(); 553 num_connected_displays_ = updated_displays.size();
554 mirroring_display_id_ = display::Display::kInvalidDisplayID; 554 mirroring_display_id_ = display::Display::kInvalidDisplayID;
555 software_mirroring_display_list_.clear(); 555 software_mirroring_display_list_.clear();
556 DisplayInfoList new_display_info_list; 556 DisplayInfoList new_display_info_list;
557 for (DisplayInfoList::const_iterator iter = updated_displays.begin(); 557 for (DisplayInfoList::const_iterator iter = updated_displays.begin();
558 iter != updated_displays.end(); 558 iter != updated_displays.end(); ++iter) {
559 ++iter) {
560 if (!internal_display_connected) 559 if (!internal_display_connected)
561 internal_display_connected = 560 internal_display_connected =
562 display::Display::IsInternalDisplayId(iter->id()); 561 display::Display::IsInternalDisplayId(iter->id());
563 // Mirrored monitors have the same origins. 562 // Mirrored monitors have the same origins.
564 gfx::Point origin = iter->bounds_in_native().origin(); 563 gfx::Point origin = iter->bounds_in_native().origin();
565 if (origins.find(origin) != origins.end()) { 564 if (origins.find(origin) != origins.end()) {
566 InsertAndUpdateDisplayInfo(*iter); 565 InsertAndUpdateDisplayInfo(*iter);
567 mirroring_display_id_ = iter->id(); 566 mirroring_display_id_ = iter->id();
568 } else { 567 } else {
569 origins.insert(origin); 568 origins.insert(origin);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 DisplayInfoList display_info_list; 631 DisplayInfoList display_info_list;
633 for (const auto& display : active_display_list_) 632 for (const auto& display : active_display_list_)
634 display_info_list.push_back(GetDisplayInfo(display.id())); 633 display_info_list.push_back(GetDisplayInfo(display.id()));
635 AddMirrorDisplayInfoIfAny(&display_info_list); 634 AddMirrorDisplayInfoIfAny(&display_info_list);
636 UpdateDisplaysWith(display_info_list); 635 UpdateDisplaysWith(display_info_list);
637 } 636 }
638 637
639 void DisplayManager::UpdateDisplaysWith( 638 void DisplayManager::UpdateDisplaysWith(
640 const std::vector<DisplayInfo>& updated_display_info_list) { 639 const std::vector<DisplayInfo>& updated_display_info_list) {
641 #if defined(OS_WIN) 640 #if defined(OS_WIN)
642 DCHECK_EQ(1u, updated_display_info_list.size()) << 641 DCHECK_EQ(1u, updated_display_info_list.size())
643 ": Multiple display test does not work on Windows bots. Please " 642 << ": Multiple display test does not work on Windows bots. Please "
644 "skip (don't disable) the test using SupportsMultipleDisplays()"; 643 "skip (don't disable) the test using SupportsMultipleDisplays()";
645 #endif 644 #endif
646 645
647 DisplayInfoList new_display_info_list = updated_display_info_list; 646 DisplayInfoList new_display_info_list = updated_display_info_list;
648 std::sort(active_display_list_.begin(), active_display_list_.end(), 647 std::sort(active_display_list_.begin(), active_display_list_.end(),
649 DisplaySortFunctor()); 648 DisplaySortFunctor());
650 std::sort(new_display_info_list.begin(), 649 std::sort(new_display_info_list.begin(), new_display_info_list.end(),
651 new_display_info_list.end(),
652 DisplayInfoSortFunctor()); 650 DisplayInfoSortFunctor());
653 651
654 if (new_display_info_list.size() > 1) { 652 if (new_display_info_list.size() > 1) {
655 display::DisplayIdList list = GenerateDisplayIdList( 653 display::DisplayIdList list = GenerateDisplayIdList(
656 new_display_info_list.begin(), new_display_info_list.end(), 654 new_display_info_list.begin(), new_display_info_list.end(),
657 [](const DisplayInfo& info) { return info.id(); }); 655 [](const DisplayInfo& info) { return info.id(); });
658 const display::DisplayLayout& layout = 656 const display::DisplayLayout& layout =
659 layout_store_->GetRegisteredDisplayLayout(list); 657 layout_store_->GetRegisteredDisplayLayout(list);
660 current_default_multi_display_mode_ = 658 current_default_multi_display_mode_ =
661 (layout.default_unified && unified_desktop_enabled_) ? UNIFIED 659 (layout.default_unified && unified_desktop_enabled_) ? UNIFIED
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 CreateDisplayFromDisplayInfoById(new_info_iter->id()); 702 CreateDisplayFromDisplayInfoById(new_info_iter->id());
705 const DisplayInfo& new_display_info = GetDisplayInfo(new_display.id()); 703 const DisplayInfo& new_display_info = GetDisplayInfo(new_display.id());
706 704
707 uint32_t metrics = display::DisplayObserver::DISPLAY_METRIC_NONE; 705 uint32_t metrics = display::DisplayObserver::DISPLAY_METRIC_NONE;
708 706
709 // At that point the new Display objects we have are not entirely updated, 707 // At that point the new Display objects we have are not entirely updated,
710 // they are missing the translation related to the Display disposition in 708 // they are missing the translation related to the Display disposition in
711 // the layout. 709 // the layout.
712 // Using display.bounds() and display.work_area() would fail most of the 710 // Using display.bounds() and display.work_area() would fail most of the
713 // time. 711 // time.
714 if (force_bounds_changed_ || 712 if (force_bounds_changed_ || (current_display_info.bounds_in_native() !=
715 (current_display_info.bounds_in_native() != 713 new_display_info.bounds_in_native()) ||
716 new_display_info.bounds_in_native()) ||
717 (current_display_info.GetOverscanInsetsInPixel() != 714 (current_display_info.GetOverscanInsetsInPixel() !=
718 new_display_info.GetOverscanInsetsInPixel()) || 715 new_display_info.GetOverscanInsetsInPixel()) ||
719 current_display.size() != new_display.size()) { 716 current_display.size() != new_display.size()) {
720 metrics |= display::DisplayObserver::DISPLAY_METRIC_BOUNDS | 717 metrics |= display::DisplayObserver::DISPLAY_METRIC_BOUNDS |
721 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA; 718 display::DisplayObserver::DISPLAY_METRIC_WORK_AREA;
722 } 719 }
723 720
724 if (current_display.device_scale_factor() != 721 if (current_display.device_scale_factor() !=
725 new_display.device_scale_factor()) { 722 new_display.device_scale_factor()) {
726 metrics |= display::DisplayObserver::DISPLAY_METRIC_DEVICE_SCALE_FACTOR; 723 metrics |= display::DisplayObserver::DISPLAY_METRIC_DEVICE_SCALE_FACTOR;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 791
795 for (size_t index : added_display_indices) 792 for (size_t index : added_display_indices)
796 screen_->NotifyDisplayAdded(active_display_list_[index]); 793 screen_->NotifyDisplayAdded(active_display_list_[index]);
797 794
798 active_display_list_.resize(active_display_list_size); 795 active_display_list_.resize(active_display_list_size);
799 796
800 bool notify_primary_change = 797 bool notify_primary_change =
801 delegate_ ? old_primary.id() != screen_->GetPrimaryDisplay().id() : false; 798 delegate_ ? old_primary.id() != screen_->GetPrimaryDisplay().id() : false;
802 799
803 for (std::map<size_t, uint32_t>::iterator iter = display_changes.begin(); 800 for (std::map<size_t, uint32_t>::iterator iter = display_changes.begin();
804 iter != display_changes.end(); 801 iter != display_changes.end(); ++iter) {
805 ++iter) {
806 uint32_t metrics = iter->second; 802 uint32_t metrics = iter->second;
807 const display::Display& updated_display = active_display_list_[iter->first]; 803 const display::Display& updated_display = active_display_list_[iter->first];
808 804
809 if (notify_primary_change && 805 if (notify_primary_change &&
810 updated_display.id() == screen_->GetPrimaryDisplay().id()) { 806 updated_display.id() == screen_->GetPrimaryDisplay().id()) {
811 metrics |= display::DisplayObserver::DISPLAY_METRIC_PRIMARY; 807 metrics |= display::DisplayObserver::DISPLAY_METRIC_PRIMARY;
812 notify_primary_change = false; 808 notify_primary_change = false;
813 } 809 }
814 screen_->NotifyMetricsChanged(updated_display, metrics); 810 screen_->NotifyMetricsChanged(updated_display, metrics);
815 } 811 }
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
1264 DCHECK(display_info_.find(id) != display_info_.end()) << "id=" << id; 1260 DCHECK(display_info_.find(id) != display_info_.end()) << "id=" << id;
1265 const DisplayInfo& display_info = display_info_[id]; 1261 const DisplayInfo& display_info = display_info_[id];
1266 1262
1267 display::Display new_display(display_info.id()); 1263 display::Display new_display(display_info.id());
1268 gfx::Rect bounds_in_native(display_info.size_in_pixel()); 1264 gfx::Rect bounds_in_native(display_info.size_in_pixel());
1269 float device_scale_factor = display_info.GetEffectiveDeviceScaleFactor(); 1265 float device_scale_factor = display_info.GetEffectiveDeviceScaleFactor();
1270 1266
1271 // Simply set the origin to (0,0). The primary display's origin is 1267 // Simply set the origin to (0,0). The primary display's origin is
1272 // always (0,0) and the bounds of non-primary display(s) will be updated 1268 // always (0,0) and the bounds of non-primary display(s) will be updated
1273 // in |UpdateNonPrimaryDisplayBoundsForLayout| called in |UpdateDisplay|. 1269 // in |UpdateNonPrimaryDisplayBoundsForLayout| called in |UpdateDisplay|.
1274 new_display.SetScaleAndBounds( 1270 new_display.SetScaleAndBounds(device_scale_factor,
1275 device_scale_factor, gfx::Rect(bounds_in_native.size())); 1271 gfx::Rect(bounds_in_native.size()));
1276 new_display.set_rotation(display_info.GetActiveRotation()); 1272 new_display.set_rotation(display_info.GetActiveRotation());
1277 new_display.set_touch_support(display_info.touch_support()); 1273 new_display.set_touch_support(display_info.touch_support());
1278 new_display.set_maximum_cursor_size(display_info.maximum_cursor_size()); 1274 new_display.set_maximum_cursor_size(display_info.maximum_cursor_size());
1279 return new_display; 1275 return new_display;
1280 } 1276 }
1281 1277
1282 display::Display DisplayManager::CreateMirroringDisplayFromDisplayInfoById( 1278 display::Display DisplayManager::CreateMirroringDisplayFromDisplayInfoById(
1283 int64_t id, 1279 int64_t id,
1284 const gfx::Point& origin, 1280 const gfx::Point& origin,
1285 float scale) { 1281 float scale) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 layout.ApplyToDisplayList(display_list, updated_ids, 1334 layout.ApplyToDisplayList(display_list, updated_ids,
1339 kMinimumOverlapForInvalidOffset); 1335 kMinimumOverlapForInvalidOffset);
1340 } 1336 }
1341 1337
1342 void DisplayManager::RunPendingTasksForTest() { 1338 void DisplayManager::RunPendingTasksForTest() {
1343 if (!software_mirroring_display_list_.empty()) 1339 if (!software_mirroring_display_list_.empty())
1344 base::RunLoop().RunUntilIdle(); 1340 base::RunLoop().RunUntilIdle();
1345 } 1341 }
1346 1342
1347 } // namespace ash 1343 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_manager.h ('k') | ash/display/display_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698