Chromium Code Reviews| Index: ash/display/display_manager.cc |
| diff --git a/ash/display/display_manager.cc b/ash/display/display_manager.cc |
| index 0377484bede9e3cb145ef3f4206b59eefdcf23f4..2731144a99536a88dbe9322bc2730d9f6f082386 100644 |
| --- a/ash/display/display_manager.cc |
| +++ b/ash/display/display_manager.cc |
| @@ -551,6 +551,21 @@ void DisplayManager::OnNativeDisplaysChanged( |
| origins.insert(origin); |
| new_display_info_list.push_back(*iter); |
| } |
| + |
| + const gfx::Size& resolution = iter->bounds_in_native().size(); |
|
dsodman
2013/12/16 18:15:17
should not be a reference
oshima
2013/12/16 18:50:56
This is actually a bug in DisplayInfo, but I'll fi
|
| + const std::vector<Resolution>& resolutions = iter->resolutions(); |
| + // This is empty the displays are initialized from InitFromCommandLine. |
| + if (!resolutions.size()) |
| + continue; |
| + std::vector<Resolution>::const_iterator resolution_iter = |
| + std::find_if(resolutions.begin(), |
| + resolutions.end(), |
| + ResolutionMatcher(resolution)); |
| + // Update the actual resolution selected as the resolution request may fail. |
| + if (resolution_iter == resolutions.begin()) |
| + resolutions_.erase(iter->id()); |
| + else if (resolutions_.find(iter->id()) != resolutions_.end()) |
| + resolutions_[iter->id()] = resolution; |
| } |
| if (HasInternalDisplay() && |
| !internal_display_connected && |