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

Unified Diff: ash/display/display_controller.cc

Issue 10826198: Use persistent ID/names for displays. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove persistent_id() and change id() to int64 Created 8 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 side-by-side diff with in-line comments
Download patch
Index: ash/display/display_controller.cc
diff --git a/ash/display/display_controller.cc b/ash/display/display_controller.cc
index 456b831235a36e971c5e3bb6e08f7ee21f7567a8..b17f4b51352e98d5622c9722d34b2607f2808b0f 100644
--- a/ash/display/display_controller.cc
+++ b/ash/display/display_controller.cc
@@ -33,7 +33,7 @@ DisplayController::~DisplayController() {
aura::Env::GetInstance()->display_manager()->RemoveObserver(this);
// Delete all root window controllers, which deletes root window
// from the last so that the primary root window gets deleted last.
- for (std::map<int, aura::RootWindow*>::const_reverse_iterator it =
+ for (std::map<int64, aura::RootWindow*>::const_reverse_iterator it =
root_windows_.rbegin(); it != root_windows_.rend(); ++it) {
internal::RootWindowController* controller =
GetRootWindowController(it->second);
@@ -50,8 +50,7 @@ void DisplayController::InitPrimaryDisplay() {
aura::DisplayManager* display_manager =
aura::Env::GetInstance()->display_manager();
const gfx::Display* display = display_manager->GetDisplayAt(0);
- DCHECK_EQ(0, display->id());
- aura::RootWindow* root = AddRootWindowForDisplay(*display);
+ aura::RootWindow* root = AddRootWindowForDisplay(*display, true);
root->SetHostBounds(display->bounds_in_pixel());
}
@@ -60,7 +59,7 @@ void DisplayController::InitSecondaryDisplays() {
aura::Env::GetInstance()->display_manager();
for (size_t i = 1; i < display_manager->GetNumDisplays(); ++i) {
const gfx::Display* display = display_manager->GetDisplayAt(i);
- aura::RootWindow* root = AddRootWindowForDisplay(*display);
+ aura::RootWindow* root = AddRootWindowForDisplay(*display, false);
Shell::GetInstance()->InitRootWindowForSecondaryDisplay(root);
}
UpdateDisplayBoundsForLayout();
@@ -68,7 +67,9 @@ void DisplayController::InitSecondaryDisplays() {
aura::RootWindow* DisplayController::GetPrimaryRootWindow() {
DCHECK(!root_windows_.empty());
- return root_windows_[0];
+ aura::DisplayManager* display_manager =
+ aura::Env::GetInstance()->display_manager();
+ return root_windows_[display_manager->GetDisplayAt(0)->id()];
}
aura::RootWindow* DisplayController::GetRootWindowForDisplayId(int id) {
@@ -76,7 +77,7 @@ aura::RootWindow* DisplayController::GetRootWindowForDisplayId(int id) {
}
void DisplayController::CloseChildWindows() {
- for (std::map<int, aura::RootWindow*>::const_iterator it =
+ for (std::map<int64, aura::RootWindow*>::const_iterator it =
root_windows_.begin(); it != root_windows_.end(); ++it) {
aura::RootWindow* root_window = it->second;
internal::RootWindowController* controller =
@@ -94,7 +95,7 @@ void DisplayController::CloseChildWindows() {
std::vector<aura::RootWindow*> DisplayController::GetAllRootWindows() {
std::vector<aura::RootWindow*> windows;
- for (std::map<int, aura::RootWindow*>::const_iterator it =
+ for (std::map<int64, aura::RootWindow*>::const_iterator it =
root_windows_.begin(); it != root_windows_.end(); ++it) {
DCHECK(it->second);
if (GetRootWindowController(it->second))
@@ -106,7 +107,7 @@ std::vector<aura::RootWindow*> DisplayController::GetAllRootWindows() {
std::vector<internal::RootWindowController*>
DisplayController::GetAllRootWindowControllers() {
std::vector<internal::RootWindowController*> controllers;
- for (std::map<int, aura::RootWindow*>::const_iterator it =
+ for (std::map<int64, aura::RootWindow*>::const_iterator it =
root_windows_.begin(); it != root_windows_.end(); ++it) {
internal::RootWindowController* controller =
GetRootWindowController(it->second);
@@ -175,12 +176,11 @@ void DisplayController::OnDisplayBoundsChanged(const gfx::Display& display) {
void DisplayController::OnDisplayAdded(const gfx::Display& display) {
if (root_windows_.empty()) {
- DCHECK_EQ(0, display.id());
root_windows_[display.id()] = Shell::GetPrimaryRootWindow();
Shell::GetPrimaryRootWindow()->SetHostBounds(display.bounds_in_pixel());
return;
}
- aura::RootWindow* root = AddRootWindowForDisplay(display);
+ aura::RootWindow* root = AddRootWindowForDisplay(display, false);
Shell::GetInstance()->InitRootWindowForSecondaryDisplay(root);
UpdateDisplayBoundsForLayout();
}
@@ -214,7 +214,7 @@ bool DisplayController::IsExtendedDesktopEnabled(){
}
aura::RootWindow* DisplayController::AddRootWindowForDisplay(
- const gfx::Display& display) {
+ const gfx::Display& display, bool is_primary) {
aura::RootWindow* root = aura::Env::GetInstance()->display_manager()->
CreateRootWindowForDisplay(display);
root_windows_[display.id()] = root;
@@ -223,8 +223,7 @@ aura::RootWindow* DisplayController::AddRootWindowForDisplay(
// 2) the display is primary display and the host window
// is set to be fullscreen (this is old behavior).
if (IsExtendedDesktopEnabled() ||
- (aura::DisplayManager::use_fullscreen_host_window() &&
- display.id() == 0)) {
+ (aura::DisplayManager::use_fullscreen_host_window() && is_primary)) {
root->ConfineCursorToWindow();
}
return root;

Powered by Google App Engine
This is Rietveld 408576698