summaryrefslogtreecommitdiffstats
path: root/ash/system
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-25 18:53:39 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-25 18:53:39 +0000
commit006e1a12c026ce9bf7a15952262dce55e9f37c11 (patch)
treeb6efbb64f41742974d44a17ad1c689838c5a6e88 /ash/system
parent69c84d1565be3ef99028d7788ad0a50784be0c37 (diff)
downloadchromium_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.cc36
-rw-r--r--ash/system/chromeos/tray_display_unittest.cc17
-rw-r--r--ash/system/web_notification/web_notification_tray_unittest.cc4
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();