OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/display/display_manager.h" | 5 #include "ash/display/display_manager.h" |
6 | 6 |
7 #include "ash/accelerators/accelerator_commands.h" | 7 #include "ash/accelerators/accelerator_commands.h" |
8 #include "ash/ash_switches.h" | 8 #include "ash/ash_switches.h" |
9 #include "ash/display/display_info.h" | 9 #include "ash/display/display_info.h" |
10 #include "ash/display/display_layout_store.h" | 10 #include "ash/display/display_layout_store.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "base/strings/stringprintf.h" | 23 #include "base/strings/stringprintf.h" |
24 #include "ui/aura/client/aura_constants.h" | 24 #include "ui/aura/client/aura_constants.h" |
25 #include "ui/aura/env.h" | 25 #include "ui/aura/env.h" |
26 #include "ui/aura/window_observer.h" | 26 #include "ui/aura/window_observer.h" |
27 #include "ui/aura/window_tree_host.h" | 27 #include "ui/aura/window_tree_host.h" |
28 #include "ui/events/test/event_generator.h" | 28 #include "ui/events/test/event_generator.h" |
29 #include "ui/gfx/display.h" | 29 #include "ui/gfx/display.h" |
30 #include "ui/gfx/display_observer.h" | 30 #include "ui/gfx/display_observer.h" |
31 #include "ui/gfx/font_render_params.h" | 31 #include "ui/gfx/font_render_params.h" |
32 #include "ui/gfx/screen.h" | 32 #include "ui/gfx/screen.h" |
33 #include "ui/gfx/screen_type_delegate.h" | |
34 | 33 |
35 namespace ash { | 34 namespace ash { |
36 | 35 |
37 using std::vector; | 36 using std::vector; |
38 using std::string; | 37 using std::string; |
39 | 38 |
40 using base::StringPrintf; | 39 using base::StringPrintf; |
41 | 40 |
42 namespace { | 41 namespace { |
43 | 42 |
(...skipping 1477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1521 | 1520 |
1522 // Don't check root window destruction in unified mode. | 1521 // Don't check root window destruction in unified mode. |
1523 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 1522 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
1524 | 1523 |
1525 UpdateDisplay("400x500,300x200"); | 1524 UpdateDisplay("400x500,300x200"); |
1526 | 1525 |
1527 // Enable after extended mode. | 1526 // Enable after extended mode. |
1528 display_manager()->SetUnifiedDesktopEnabled(true); | 1527 display_manager()->SetUnifiedDesktopEnabled(true); |
1529 | 1528 |
1530 // Defaults to the unified desktop. | 1529 // Defaults to the unified desktop. |
1531 gfx::Screen* screen = | 1530 gfx::Screen* screen = gfx::Screen::GetScreen(); |
1532 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); | |
1533 // The 2nd display is scaled so that it has the same height as 1st display. | 1531 // The 2nd display is scaled so that it has the same height as 1st display. |
1534 // 300 * 500 / 200 + 400 = 1150. | 1532 // 300 * 500 / 200 + 400 = 1150. |
1535 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); | 1533 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); |
1536 | 1534 |
1537 display_manager()->SetMirrorMode(true); | 1535 display_manager()->SetMirrorMode(true); |
1538 EXPECT_EQ("400x500", screen->GetPrimaryDisplay().size().ToString()); | 1536 EXPECT_EQ("400x500", screen->GetPrimaryDisplay().size().ToString()); |
1539 | 1537 |
1540 display_manager()->SetMirrorMode(false); | 1538 display_manager()->SetMirrorMode(false); |
1541 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); | 1539 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); |
1542 | 1540 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1624 EXPECT_FALSE(display_manager()->IsInUnifiedMode()); | 1622 EXPECT_FALSE(display_manager()->IsInUnifiedMode()); |
1625 } | 1623 } |
1626 | 1624 |
1627 TEST_F(DisplayManagerTest, UnifiedDesktopWith2xDSF) { | 1625 TEST_F(DisplayManagerTest, UnifiedDesktopWith2xDSF) { |
1628 if (!SupportsMultipleDisplays()) | 1626 if (!SupportsMultipleDisplays()) |
1629 return; | 1627 return; |
1630 // Don't check root window destruction in unified mode. | 1628 // Don't check root window destruction in unified mode. |
1631 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 1629 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
1632 | 1630 |
1633 display_manager()->SetUnifiedDesktopEnabled(true); | 1631 display_manager()->SetUnifiedDesktopEnabled(true); |
1634 gfx::Screen* screen = | 1632 gfx::Screen* screen = gfx::Screen::GetScreen(); |
1635 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); | |
1636 | 1633 |
1637 // 2nd display is 2x. | 1634 // 2nd display is 2x. |
1638 UpdateDisplay("400x500,1000x800*2"); | 1635 UpdateDisplay("400x500,1000x800*2"); |
1639 DisplayInfo info = | 1636 DisplayInfo info = |
1640 display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); | 1637 display_manager()->GetDisplayInfo(screen->GetPrimaryDisplay().id()); |
1641 EXPECT_EQ(2u, info.display_modes().size()); | 1638 EXPECT_EQ(2u, info.display_modes().size()); |
1642 EXPECT_EQ("1640x800", info.display_modes()[0].size.ToString()); | 1639 EXPECT_EQ("1640x800", info.display_modes()[0].size.ToString()); |
1643 EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor); | 1640 EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor); |
1644 EXPECT_EQ("1025x500", info.display_modes()[1].size.ToString()); | 1641 EXPECT_EQ("1025x500", info.display_modes()[1].size.ToString()); |
1645 EXPECT_EQ(1.0f, info.display_modes()[1].device_scale_factor); | 1642 EXPECT_EQ(1.0f, info.display_modes()[1].device_scale_factor); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1746 TEST_F(DisplayManagerTest, NoRotateUnifiedDesktop) { | 1743 TEST_F(DisplayManagerTest, NoRotateUnifiedDesktop) { |
1747 if (!SupportsMultipleDisplays()) | 1744 if (!SupportsMultipleDisplays()) |
1748 return; | 1745 return; |
1749 display_manager()->SetUnifiedDesktopEnabled(true); | 1746 display_manager()->SetUnifiedDesktopEnabled(true); |
1750 | 1747 |
1751 // Don't check root window destruction in unified mode. | 1748 // Don't check root window destruction in unified mode. |
1752 Shell::GetPrimaryRootWindow()->RemoveObserver(this); | 1749 Shell::GetPrimaryRootWindow()->RemoveObserver(this); |
1753 | 1750 |
1754 UpdateDisplay("400x500,300x200"); | 1751 UpdateDisplay("400x500,300x200"); |
1755 | 1752 |
1756 gfx::Screen* screen = | 1753 gfx::Screen* screen = gfx::Screen::GetScreen(); |
1757 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); | |
1758 const gfx::Display& display = screen->GetPrimaryDisplay(); | 1754 const gfx::Display& display = screen->GetPrimaryDisplay(); |
1759 EXPECT_EQ("1150x500", display.size().ToString()); | 1755 EXPECT_EQ("1150x500", display.size().ToString()); |
1760 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_90, | 1756 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_90, |
1761 gfx::Display::ROTATION_SOURCE_ACTIVE); | 1757 gfx::Display::ROTATION_SOURCE_ACTIVE); |
1762 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); | 1758 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); |
1763 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_0, | 1759 display_manager()->SetDisplayRotation(display.id(), gfx::Display::ROTATE_0, |
1764 gfx::Display::ROTATION_SOURCE_ACTIVE); | 1760 gfx::Display::ROTATION_SOURCE_ACTIVE); |
1765 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); | 1761 EXPECT_EQ("1150x500", screen->GetPrimaryDisplay().size().ToString()); |
1766 | 1762 |
1767 UpdateDisplay("400x500"); | 1763 UpdateDisplay("400x500"); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1833 EXPECT_FALSE(SetDisplayUIScale(gfx::Display::kInvalidDisplayID, 1.0f)); | 1829 EXPECT_FALSE(SetDisplayUIScale(gfx::Display::kInvalidDisplayID, 1.0f)); |
1834 } | 1830 } |
1835 | 1831 |
1836 class ScreenShutdownTest : public test::AshTestBase { | 1832 class ScreenShutdownTest : public test::AshTestBase { |
1837 public: | 1833 public: |
1838 ScreenShutdownTest() { | 1834 ScreenShutdownTest() { |
1839 } | 1835 } |
1840 ~ScreenShutdownTest() override {} | 1836 ~ScreenShutdownTest() override {} |
1841 | 1837 |
1842 void TearDown() override { | 1838 void TearDown() override { |
1843 gfx::Screen* orig_screen = | 1839 gfx::Screen* orig_screen = gfx::Screen::GetScreen(); |
1844 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); | |
1845 AshTestBase::TearDown(); | 1840 AshTestBase::TearDown(); |
1846 if (!SupportsMultipleDisplays()) | 1841 if (!SupportsMultipleDisplays()) |
1847 return; | 1842 return; |
1848 gfx::Screen* screen = | 1843 gfx::Screen* screen = gfx::Screen::GetScreen(); |
1849 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_ALTERNATE); | |
1850 EXPECT_NE(orig_screen, screen); | 1844 EXPECT_NE(orig_screen, screen); |
1851 EXPECT_EQ(2, screen->GetNumDisplays()); | 1845 EXPECT_EQ(2, screen->GetNumDisplays()); |
1852 EXPECT_EQ("500x300", screen->GetPrimaryDisplay().size().ToString()); | 1846 EXPECT_EQ("500x300", screen->GetPrimaryDisplay().size().ToString()); |
1853 std::vector<gfx::Display> all = screen->GetAllDisplays(); | 1847 std::vector<gfx::Display> all = screen->GetAllDisplays(); |
1854 EXPECT_EQ("500x300", all[0].size().ToString()); | 1848 EXPECT_EQ("500x300", all[0].size().ToString()); |
1855 EXPECT_EQ("800x400", all[1].size().ToString()); | 1849 EXPECT_EQ("800x400", all[1].size().ToString()); |
1856 } | 1850 } |
1857 | 1851 |
1858 private: | 1852 private: |
1859 DISALLOW_COPY_AND_ASSIGN(ScreenShutdownTest); | 1853 DISALLOW_COPY_AND_ASSIGN(ScreenShutdownTest); |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2017 layout_store->RegisterLayoutForDisplayIdPair(id2, id1, bad); | 2011 layout_store->RegisterLayoutForDisplayIdPair(id2, id1, bad); |
2018 | 2012 |
2019 EXPECT_EQ(good.ToString(), layout_store->GetRegisteredDisplayLayout( | 2013 EXPECT_EQ(good.ToString(), layout_store->GetRegisteredDisplayLayout( |
2020 CreateDisplayIdPair(id1, id2)) | 2014 CreateDisplayIdPair(id1, id2)) |
2021 .ToString()); | 2015 .ToString()); |
2022 } | 2016 } |
2023 | 2017 |
2024 #endif // OS_CHROMEOS | 2018 #endif // OS_CHROMEOS |
2025 | 2019 |
2026 } // namespace ash | 2020 } // namespace ash |
OLD | NEW |