diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-25 18:53:39 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-25 18:53:39 +0000 |
commit | 006e1a12c026ce9bf7a15952262dce55e9f37c11 (patch) | |
tree | b6efbb64f41742974d44a17ad1c689838c5a6e88 /ash/system | |
parent | 69c84d1565be3ef99028d7788ad0a50784be0c37 (diff) | |
download | chromium_src-006e1a12c026ce9bf7a15952262dce55e9f37c11.zip chromium_src-006e1a12c026ce9bf7a15952262dce55e9f37c11.tar.gz chromium_src-006e1a12c026ce9bf7a15952262dce55e9f37c11.tar.bz2 |
Use display ID only for mirrored display.
Don't show display size for mirrored display.
Rename SoftwareMirroring code to more generic name to be used for virtual keyboard.
This is preparation to add VIRTUAL KEYBOARD mode.
BUG=310325
TBR=hongbo.min@intel.com
Review URL: https://codereview.chromium.org/39133002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231067 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/system')
-rw-r--r-- | ash/system/chromeos/tray_display.cc | 36 | ||||
-rw-r--r-- | ash/system/chromeos/tray_display_unittest.cc | 17 | ||||
-rw-r--r-- | ash/system/web_notification/web_notification_tray_unittest.cc | 4 |
3 files changed, 32 insertions, 25 deletions
diff --git a/ash/system/chromeos/tray_display.cc b/ash/system/chromeos/tray_display.cc index 9e1cdc9..fcee915 100644 --- a/ash/system/chromeos/tray_display.cc +++ b/ash/system/chromeos/tray_display.cc @@ -46,10 +46,13 @@ base::string16 GetDisplaySize(int64 display_id) { DisplayManager* display_manager = GetDisplayManager(); const gfx::Display* display = &display_manager->GetDisplayForId(display_id); - if (display_manager->IsMirrored() && - display_manager->mirrored_display().id() == display_id) { - display = &display_manager->mirrored_display(); - } + + // We don't show display size for mirrored display. Fallback + // to empty string if this happens on release build. + bool mirrored_display = display_manager->mirrored_display_id() == display_id; + DCHECK(!mirrored_display); + if (mirrored_display) + return base::string16(); DCHECK(display->is_valid()); return UTF8ToUTF16(display->size().ToString()); @@ -60,6 +63,8 @@ base::string16 GetDisplaySize(int64 display_id) { base::string16 GetDisplayInfoLine(int64 display_id) { const DisplayInfo& display_info = GetDisplayManager()->GetDisplayInfo(display_id); + if (GetDisplayManager()->mirrored_display_id() == display_id) + return GetDisplayName(display_id); base::string16 size_text = GetDisplaySize(display_id); base::string16 display_data; @@ -102,18 +107,18 @@ base::string16 GetAllDisplayInfo() { } // Returns the name of the currently connected external display. +// This should not be used when the external display is used for +// mirroring. base::string16 GetExternalDisplayName() { DisplayManager* display_manager = GetDisplayManager(); - int64 external_id = display_manager->mirrored_display().id(); - - if (external_id == gfx::Display::kInvalidDisplayID) { - int64 internal_display_id = gfx::Display::InternalDisplayId(); - for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { - int64 id = display_manager->GetDisplayAt(i).id(); - if (id != internal_display_id) { - external_id = id; - break; - } + DCHECK(!display_manager->IsMirrored()); + + int64 external_id = gfx::Display::kInvalidDisplayID; + for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { + int64 id = display_manager->GetDisplayAt(i).id(); + if (id != gfx::Display::InternalDisplayId()) { + external_id = id; + break; } } @@ -156,7 +161,8 @@ base::string16 GetTrayDisplayMessage(base::string16* additional_message_out) { if (display_manager->IsMirrored()) { if (GetDisplayManager()->HasInternalDisplay()) { return l10n_util::GetStringFUTF16( - IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, GetExternalDisplayName()); + IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, + GetDisplayName(display_manager->mirrored_display_id())); } return l10n_util::GetStringUTF16( IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING_NO_INTERNAL); diff --git a/ash/system/chromeos/tray_display_unittest.cc b/ash/system/chromeos/tray_display_unittest.cc index 9cb9fee..8884da8 100644 --- a/ash/system/chromeos/tray_display_unittest.cc +++ b/ash/system/chromeos/tray_display_unittest.cc @@ -31,9 +31,13 @@ base::string16 GetTooltipText(const base::string16& headline, const std::string& data2) { std::vector<base::string16> lines; lines.push_back(headline); - lines.push_back(l10n_util::GetStringFUTF16( - IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, - name1, UTF8ToUTF16(data1))); + if (data1.empty()) { + lines.push_back(name1); + } else { + lines.push_back(l10n_util::GetStringFUTF16( + IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, + name1, UTF8ToUTF16(data1))); + } if (!name2.empty()) { lines.push_back(l10n_util::GetStringFUTF16( IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, @@ -63,7 +67,7 @@ base::string16 GetSecondDisplayName() { base::string16 GetMirroredDisplayName() { DisplayManager* display_manager = Shell::GetInstance()->display_manager(); return UTF8ToUTF16(display_manager->GetDisplayNameForId( - display_manager->mirrored_display().id())); + display_manager->mirrored_display_id())); } class TrayDisplayTest : public ash::test::AshTestBase { @@ -300,13 +304,10 @@ TEST_F(TrayDisplayTest, ExternalDisplayResized) { // Mirroring display_manager->SetSoftwareMirroring(true); UpdateDisplay("400x400,200x200@1.5"); - base::string16 mirror_name = l10n_util::GetStringFUTF16( - IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, - GetMirroredDisplayName(), UTF8ToUTF16("300x300")); tray()->ShowDefaultView(BUBBLE_USE_EXISTING); EXPECT_TRUE(IsDisplayVisibleInTray()); expected = l10n_util::GetStringFUTF16( - IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, mirror_name); + IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, GetMirroredDisplayName()); EXPECT_EQ(expected, GetTrayDisplayText()); EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), GetTrayDisplayTooltipText()); diff --git a/ash/system/web_notification/web_notification_tray_unittest.cc b/ash/system/web_notification/web_notification_tray_unittest.cc index d763a56..763b0df 100644 --- a/ash/system/web_notification/web_notification_tray_unittest.cc +++ b/ash/system/web_notification/web_notification_tray_unittest.cc @@ -286,12 +286,12 @@ TEST_F(WebNotificationTrayTest, MAYBE_PopupShownOnBothDisplays) { internal::DisplayManager* display_manager = Shell::GetInstance()->display_manager(); - display_manager->SetSoftwareMirroring(true); + display_manager->SetSecondDisplayMode(internal::DisplayManager::MIRRORING); UpdateDisplay("400x400,200x200"); EXPECT_TRUE(GetTray()->IsPopupVisible()); EXPECT_FALSE(GetSecondaryTray()); - display_manager->SetSoftwareMirroring(false); + display_manager->SetSecondDisplayMode(internal::DisplayManager::EXTENDED); UpdateDisplay("400x400,200x200"); EXPECT_TRUE(GetTray()->IsPopupVisible()); secondary_tray = GetSecondaryTray(); |