| 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();
|
|
|