Index: ash/display/multi_display_manager.cc |
diff --git a/ash/display/multi_display_manager.cc b/ash/display/multi_display_manager.cc |
index 45bdd135b1e9dc325acf2e21865c9c5800ade5e8..246e0b844c0b2f79da0f93d02772126ff3e92422 100644 |
--- a/ash/display/multi_display_manager.cc |
+++ b/ash/display/multi_display_manager.cc |
@@ -21,7 +21,7 @@ |
#include "ui/aura/root_window.h" |
#include "ui/aura/root_window_host.h" |
#include "ui/aura/window_property.h" |
-#include "ui/base/l10n/l10n_util.h" |
+#include "ui/base/resource/resource_bundle.h" |
#include "ui/gfx/display.h" |
#include "ui/gfx/screen.h" |
#include "ui/gfx/rect.h" |
@@ -283,8 +283,6 @@ void MultiDisplayManager::OnNativeDisplaysChanged( |
} |
displays_ = new_displays; |
- RefreshDisplayNames(); |
- |
// Temporarily add displays to be removed because display object |
// being removed are accessed during shutting down the root. |
displays_.insert(displays_.end(), removed_displays.begin(), |
@@ -375,14 +373,29 @@ const gfx::Display& MultiDisplayManager::GetDisplayMatching( |
std::string MultiDisplayManager::GetDisplayNameFor( |
const gfx::Display& display) { |
- if (!display.is_valid()) |
- return l10n_util::GetStringUTF8(IDS_ASH_STATUS_TRAY_UNKNOWN_DISPLAY_NAME); |
- |
- std::map<int64, std::string>::const_iterator iter = |
- display_names_.find(display.id()); |
- if (iter != display_names_.end()) |
- return iter->second; |
+ if (HasInternalDisplay() && IsInternalDisplayId(display.id())) { |
+ ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance(); |
+ return UTF16ToUTF8( |
+ bundle.GetLocalizedString(IDS_ASH_INTERNAL_DISPLAY_NAME)); |
+ } |
+#if defined(USE_X11) |
+ std::vector<XID> outputs; |
+ if (display.id() != gfx::Display::kInvalidDisplayID && |
+ ui::GetOutputDeviceHandles(&outputs)) { |
+ for (size_t i = 0; i < outputs.size(); ++i) { |
+ uint16 manufacturer_id = 0; |
+ uint32 serial_number = 0; |
+ std::string name; |
+ if (ui::GetOutputDeviceData( |
+ outputs[i], &manufacturer_id, &serial_number, &name) && |
+ display.id() == |
+ gfx::Display::GetID(manufacturer_id, serial_number)) { |
+ return name; |
+ } |
+ } |
+ } |
+#endif |
return base::StringPrintf("Display %d", static_cast<int>(display.id())); |
} |
@@ -413,8 +426,6 @@ void MultiDisplayManager::Init() { |
} |
#endif |
- RefreshDisplayNames(); |
- |
#if defined(OS_WIN) |
if (base::win::GetVersion() >= base::win::VERSION_WIN8) |
set_use_fullscreen_host_window(true); |
@@ -532,35 +543,6 @@ void MultiDisplayManager::EnsurePointerInDisplays() { |
root_window->MoveCursorTo(target_location); |
} |
-void MultiDisplayManager::RefreshDisplayNames() { |
- display_names_.clear(); |
- |
- if (!base::chromeos::IsRunningOnChromeOS()) |
- return; |
- |
-#if defined(USE_X11) |
- std::vector<XID> outputs; |
- if (!ui::GetOutputDeviceHandles(&outputs)) |
- return; |
- |
- for (size_t i = 0; i < outputs.size(); ++i) { |
- uint16 manufacturer_id = 0; |
- uint32 serial_number = 0; |
- std::string name; |
- if (ui::GetOutputDeviceData( |
- outputs[i], &manufacturer_id, &serial_number, &name)) { |
- int64 id = gfx::Display::GetID(manufacturer_id, serial_number); |
- if (IsInternalDisplayId(id)) { |
- display_names_[id] = |
- l10n_util::GetStringUTF8(IDS_ASH_INTERNAL_DISPLAY_NAME); |
- } else { |
- display_names_[id] = name; |
- } |
- } |
- } |
-#endif |
-} |
- |
void MultiDisplayManager::SetDisplayIdsForTest(DisplayList* to_update) const { |
DisplayList::iterator iter_to_update = to_update->begin(); |
DisplayList::const_iterator iter = displays_.begin(); |