Index: ash/display/display_change_observer_chromeos.cc |
diff --git a/ash/display/display_change_observer_chromeos.cc b/ash/display/display_change_observer_chromeos.cc |
index cc30d1fd2926ef3c3d977c7dd20d8110ef44be26..047d903e8b434cf355a7be6f4bde63b8422f7337 100644 |
--- a/ash/display/display_change_observer_chromeos.cc |
+++ b/ash/display/display_change_observer_chromeos.cc |
@@ -136,6 +136,18 @@ std::vector<DisplayMode> DisplayChangeObserver::GetExternalDisplayModeList( |
display_mode_list.push_back(iter->second); |
} |
+ if (output.display->native_mode()) { |
+ const std::pair<int, int> size(native_mode.size.width(), |
+ native_mode.size.height()); |
+ DisplayModeMap::iterator it = display_mode_map.find(size); |
+ DCHECK(it != display_mode_map.end()) |
+ << "Native mode must be part of the mode list."; |
+ |
+ // If the native mode was replaced re-add it. |
+ if (!it->second.native) |
+ display_mode_list.push_back(native_mode); |
+ } |
+ |
if (native_mode.size.width() >= kMinimumWidthFor4K) { |
for (size_t i = 0; i < arraysize(kAdditionalDeviceScaleFactorsFor4k); |
++i) { |