| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/common/wm/maximize_mode/maximize_mode_window_manager.h" | 5 #include "ash/common/wm/maximize_mode/maximize_mode_window_manager.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "ash/common/ash_switches.h" | 9 #include "ash/common/ash_switches.h" |
| 10 #include "ash/common/shelf/wm_shelf.h" | 10 #include "ash/common/shelf/wm_shelf.h" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 aura::Window* window = widget->GetNativeWindow(); | 78 aura::Window* window = widget->GetNativeWindow(); |
| 79 window->SetBounds(bounds); | 79 window->SetBounds(bounds); |
| 80 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); | 80 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); |
| 81 | 81 |
| 82 return window; | 82 return window; |
| 83 } | 83 } |
| 84 | 84 |
| 85 // Create the Maximized mode window manager. | 85 // Create the Maximized mode window manager. |
| 86 MaximizeModeWindowManager* CreateMaximizeModeWindowManager() { | 86 MaximizeModeWindowManager* CreateMaximizeModeWindowManager() { |
| 87 EXPECT_FALSE(maximize_mode_window_manager()); | 87 EXPECT_FALSE(maximize_mode_window_manager()); |
| 88 WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( | 88 Shell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
| 89 true); | 89 true); |
| 90 return maximize_mode_window_manager(); | 90 return maximize_mode_window_manager(); |
| 91 } | 91 } |
| 92 | 92 |
| 93 // Destroy the maximized mode window manager. | 93 // Destroy the maximized mode window manager. |
| 94 void DestroyMaximizeModeWindowManager() { | 94 void DestroyMaximizeModeWindowManager() { |
| 95 WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( | 95 Shell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
| 96 false); | 96 false); |
| 97 EXPECT_FALSE(maximize_mode_window_manager()); | 97 EXPECT_FALSE(maximize_mode_window_manager()); |
| 98 } | 98 } |
| 99 | 99 |
| 100 // Get the maximze window manager. | 100 // Get the maximze window manager. |
| 101 MaximizeModeWindowManager* maximize_mode_window_manager() { | 101 MaximizeModeWindowManager* maximize_mode_window_manager() { |
| 102 return WmShell::Get() | 102 return Shell::Get() |
| 103 ->maximize_mode_controller() | 103 ->maximize_mode_controller() |
| 104 ->maximize_mode_window_manager_.get(); | 104 ->maximize_mode_window_manager_.get(); |
| 105 } | 105 } |
| 106 | 106 |
| 107 // Resize our desktop. | 107 // Resize our desktop. |
| 108 void ResizeDesktop(int width_delta) { | 108 void ResizeDesktop(int width_delta) { |
| 109 gfx::Size size = | 109 gfx::Size size = |
| 110 display::Screen::GetScreen() | 110 display::Screen::GetScreen() |
| 111 ->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()) | 111 ->GetDisplayNearestWindow(Shell::GetPrimaryRootWindow()) |
| 112 .size(); | 112 .size(); |
| (...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 764 std::unique_ptr<aura::Window> w3( | 764 std::unique_ptr<aura::Window> w3( |
| 765 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 765 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
| 766 std::unique_ptr<aura::Window> w4( | 766 std::unique_ptr<aura::Window> w4( |
| 767 CreateFixedSizeNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 767 CreateFixedSizeNonMaximizableWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
| 768 std::unique_ptr<aura::Window> w5( | 768 std::unique_ptr<aura::Window> w5( |
| 769 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 769 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
| 770 | 770 |
| 771 // The windows should be in the reverse order of creation in the MRU list. | 771 // The windows should be in the reverse order of creation in the MRU list. |
| 772 { | 772 { |
| 773 aura::Window::Windows windows = WmWindow::ToAuraWindows( | 773 aura::Window::Windows windows = WmWindow::ToAuraWindows( |
| 774 WmShell::Get()->mru_window_tracker()->BuildMruWindowList()); | 774 Shell::Get()->mru_window_tracker()->BuildMruWindowList()); |
| 775 | 775 |
| 776 EXPECT_EQ(w1.get(), windows[4]); | 776 EXPECT_EQ(w1.get(), windows[4]); |
| 777 EXPECT_EQ(w2.get(), windows[3]); | 777 EXPECT_EQ(w2.get(), windows[3]); |
| 778 EXPECT_EQ(w3.get(), windows[2]); | 778 EXPECT_EQ(w3.get(), windows[2]); |
| 779 EXPECT_EQ(w4.get(), windows[1]); | 779 EXPECT_EQ(w4.get(), windows[1]); |
| 780 EXPECT_EQ(w5.get(), windows[0]); | 780 EXPECT_EQ(w5.get(), windows[0]); |
| 781 } | 781 } |
| 782 | 782 |
| 783 // Activating the window manager should keep the order. | 783 // Activating the window manager should keep the order. |
| 784 MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); | 784 MaximizeModeWindowManager* manager = CreateMaximizeModeWindowManager(); |
| 785 ASSERT_TRUE(manager); | 785 ASSERT_TRUE(manager); |
| 786 EXPECT_EQ(5, manager->GetNumberOfManagedWindows()); | 786 EXPECT_EQ(5, manager->GetNumberOfManagedWindows()); |
| 787 { | 787 { |
| 788 aura::Window::Windows windows = WmWindow::ToAuraWindows( | 788 aura::Window::Windows windows = WmWindow::ToAuraWindows( |
| 789 WmShell::Get()->mru_window_tracker()->BuildMruWindowList()); | 789 Shell::Get()->mru_window_tracker()->BuildMruWindowList()); |
| 790 // We do not test maximization here again since that was done already. | 790 // We do not test maximization here again since that was done already. |
| 791 EXPECT_EQ(w1.get(), windows[4]); | 791 EXPECT_EQ(w1.get(), windows[4]); |
| 792 EXPECT_EQ(w2.get(), windows[3]); | 792 EXPECT_EQ(w2.get(), windows[3]); |
| 793 EXPECT_EQ(w3.get(), windows[2]); | 793 EXPECT_EQ(w3.get(), windows[2]); |
| 794 EXPECT_EQ(w4.get(), windows[1]); | 794 EXPECT_EQ(w4.get(), windows[1]); |
| 795 EXPECT_EQ(w5.get(), windows[0]); | 795 EXPECT_EQ(w5.get(), windows[0]); |
| 796 } | 796 } |
| 797 | 797 |
| 798 // Destroying should still keep the order. | 798 // Destroying should still keep the order. |
| 799 DestroyMaximizeModeWindowManager(); | 799 DestroyMaximizeModeWindowManager(); |
| 800 { | 800 { |
| 801 aura::Window::Windows windows = WmWindow::ToAuraWindows( | 801 aura::Window::Windows windows = WmWindow::ToAuraWindows( |
| 802 WmShell::Get()->mru_window_tracker()->BuildMruWindowList()); | 802 Shell::Get()->mru_window_tracker()->BuildMruWindowList()); |
| 803 // We do not test maximization here again since that was done already. | 803 // We do not test maximization here again since that was done already. |
| 804 EXPECT_EQ(w1.get(), windows[4]); | 804 EXPECT_EQ(w1.get(), windows[4]); |
| 805 EXPECT_EQ(w2.get(), windows[3]); | 805 EXPECT_EQ(w2.get(), windows[3]); |
| 806 EXPECT_EQ(w3.get(), windows[2]); | 806 EXPECT_EQ(w3.get(), windows[2]); |
| 807 EXPECT_EQ(w4.get(), windows[1]); | 807 EXPECT_EQ(w4.get(), windows[1]); |
| 808 EXPECT_EQ(w5.get(), windows[0]); | 808 EXPECT_EQ(w5.get(), windows[0]); |
| 809 } | 809 } |
| 810 } | 810 } |
| 811 | 811 |
| 812 // Check that a restore state change does always restore to maximized. | 812 // Check that a restore state change does always restore to maximized. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 826 DestroyMaximizeModeWindowManager(); | 826 DestroyMaximizeModeWindowManager(); |
| 827 } | 827 } |
| 828 | 828 |
| 829 // Check that minimize and restore do the right thing. | 829 // Check that minimize and restore do the right thing. |
| 830 TEST_F(MaximizeModeWindowManagerTest, TestMinimize) { | 830 TEST_F(MaximizeModeWindowManagerTest, TestMinimize) { |
| 831 gfx::Rect rect(10, 10, 100, 100); | 831 gfx::Rect rect(10, 10, 100, 100); |
| 832 std::unique_ptr<aura::Window> window( | 832 std::unique_ptr<aura::Window> window( |
| 833 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); | 833 CreateWindow(ui::wm::WINDOW_TYPE_NORMAL, rect)); |
| 834 wm::WindowState* window_state = wm::GetWindowState(window.get()); | 834 wm::WindowState* window_state = wm::GetWindowState(window.get()); |
| 835 EXPECT_EQ(rect.ToString(), window->bounds().ToString()); | 835 EXPECT_EQ(rect.ToString(), window->bounds().ToString()); |
| 836 WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( | 836 Shell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
| 837 true); | 837 true); |
| 838 EXPECT_TRUE(window_state->IsMaximized()); | 838 EXPECT_TRUE(window_state->IsMaximized()); |
| 839 EXPECT_FALSE(window_state->IsMinimized()); | 839 EXPECT_FALSE(window_state->IsMinimized()); |
| 840 EXPECT_TRUE(window->IsVisible()); | 840 EXPECT_TRUE(window->IsVisible()); |
| 841 | 841 |
| 842 window_state->Minimize(); | 842 window_state->Minimize(); |
| 843 EXPECT_FALSE(window_state->IsMaximized()); | 843 EXPECT_FALSE(window_state->IsMaximized()); |
| 844 EXPECT_TRUE(window_state->IsMinimized()); | 844 EXPECT_TRUE(window_state->IsMinimized()); |
| 845 EXPECT_FALSE(window->IsVisible()); | 845 EXPECT_FALSE(window->IsVisible()); |
| 846 | 846 |
| 847 window_state->Maximize(); | 847 window_state->Maximize(); |
| 848 EXPECT_TRUE(window_state->IsMaximized()); | 848 EXPECT_TRUE(window_state->IsMaximized()); |
| 849 EXPECT_FALSE(window_state->IsMinimized()); | 849 EXPECT_FALSE(window_state->IsMinimized()); |
| 850 EXPECT_TRUE(window->IsVisible()); | 850 EXPECT_TRUE(window->IsVisible()); |
| 851 | 851 |
| 852 WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( | 852 Shell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
| 853 false); | 853 false); |
| 854 EXPECT_FALSE(window_state->IsMaximized()); | 854 EXPECT_FALSE(window_state->IsMaximized()); |
| 855 EXPECT_FALSE(window_state->IsMinimized()); | 855 EXPECT_FALSE(window_state->IsMinimized()); |
| 856 EXPECT_TRUE(window->IsVisible()); | 856 EXPECT_TRUE(window->IsVisible()); |
| 857 } | 857 } |
| 858 | 858 |
| 859 // Check that a full screen window remains full screen upon entering maximize | 859 // Check that a full screen window remains full screen upon entering maximize |
| 860 // mode. Furthermore, checks that this window is not full screen upon exiting | 860 // mode. Furthermore, checks that this window is not full screen upon exiting |
| 861 // maximize mode if it was un-full-screened while in maximize mode. | 861 // maximize mode if it was un-full-screened while in maximize mode. |
| 862 TEST_F(MaximizeModeWindowManagerTest, KeepFullScreenModeOn) { | 862 TEST_F(MaximizeModeWindowManagerTest, KeepFullScreenModeOn) { |
| (...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1228 generator.PressLeftButton(); | 1228 generator.PressLeftButton(); |
| 1229 generator.MoveMouseBy(10, 5); | 1229 generator.MoveMouseBy(10, 5); |
| 1230 RunAllPendingInMessageLoop(); | 1230 RunAllPendingInMessageLoop(); |
| 1231 generator.ReleaseLeftButton(); | 1231 generator.ReleaseLeftButton(); |
| 1232 gfx::Point first_dragged_origin = window->bounds().origin(); | 1232 gfx::Point first_dragged_origin = window->bounds().origin(); |
| 1233 EXPECT_EQ(rect.x() + 10, first_dragged_origin.x()); | 1233 EXPECT_EQ(rect.x() + 10, first_dragged_origin.x()); |
| 1234 EXPECT_EQ(rect.y() + 5, first_dragged_origin.y()); | 1234 EXPECT_EQ(rect.y() + 5, first_dragged_origin.y()); |
| 1235 | 1235 |
| 1236 // 2. Check that turning on the manager will stop allowing the window from | 1236 // 2. Check that turning on the manager will stop allowing the window from |
| 1237 // dragging. | 1237 // dragging. |
| 1238 WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( | 1238 Shell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
| 1239 true); | 1239 true); |
| 1240 gfx::Rect center_bounds(window->bounds()); | 1240 gfx::Rect center_bounds(window->bounds()); |
| 1241 EXPECT_NE(rect.origin().ToString(), center_bounds.origin().ToString()); | 1241 EXPECT_NE(rect.origin().ToString(), center_bounds.origin().ToString()); |
| 1242 generator.MoveMouseTo( | 1242 generator.MoveMouseTo( |
| 1243 gfx::Point(center_bounds.x() + 1, center_bounds.y() + 1)); | 1243 gfx::Point(center_bounds.x() + 1, center_bounds.y() + 1)); |
| 1244 generator.PressLeftButton(); | 1244 generator.PressLeftButton(); |
| 1245 generator.MoveMouseBy(10, 5); | 1245 generator.MoveMouseBy(10, 5); |
| 1246 RunAllPendingInMessageLoop(); | 1246 RunAllPendingInMessageLoop(); |
| 1247 generator.ReleaseLeftButton(); | 1247 generator.ReleaseLeftButton(); |
| 1248 EXPECT_EQ(center_bounds.x(), window->bounds().x()); | 1248 EXPECT_EQ(center_bounds.x(), window->bounds().x()); |
| 1249 EXPECT_EQ(center_bounds.y(), window->bounds().y()); | 1249 EXPECT_EQ(center_bounds.y(), window->bounds().y()); |
| 1250 WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( | 1250 Shell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager( |
| 1251 false); | 1251 false); |
| 1252 | 1252 |
| 1253 // 3. Releasing the mazimize manager again will restore the window to its | 1253 // 3. Releasing the mazimize manager again will restore the window to its |
| 1254 // previous bounds and | 1254 // previous bounds and |
| 1255 generator.MoveMouseTo( | 1255 generator.MoveMouseTo( |
| 1256 gfx::Point(first_dragged_origin.x() + 1, first_dragged_origin.y() + 1)); | 1256 gfx::Point(first_dragged_origin.x() + 1, first_dragged_origin.y() + 1)); |
| 1257 generator.PressLeftButton(); | 1257 generator.PressLeftButton(); |
| 1258 generator.MoveMouseBy(10, 5); | 1258 generator.MoveMouseBy(10, 5); |
| 1259 RunAllPendingInMessageLoop(); | 1259 RunAllPendingInMessageLoop(); |
| 1260 generator.ReleaseLeftButton(); | 1260 generator.ReleaseLeftButton(); |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1718 EXPECT_EQ(1, observer.GetPostCountAndReset()); | 1718 EXPECT_EQ(1, observer.GetPostCountAndReset()); |
| 1719 EXPECT_EQ(wm::WINDOW_STATE_TYPE_MINIMIZED, | 1719 EXPECT_EQ(wm::WINDOW_STATE_TYPE_MINIMIZED, |
| 1720 observer.GetLastOldStateAndReset()); | 1720 observer.GetLastOldStateAndReset()); |
| 1721 | 1721 |
| 1722 window_state->RemoveObserver(&observer); | 1722 window_state->RemoveObserver(&observer); |
| 1723 | 1723 |
| 1724 DestroyMaximizeModeWindowManager(); | 1724 DestroyMaximizeModeWindowManager(); |
| 1725 } | 1725 } |
| 1726 | 1726 |
| 1727 } // namespace ash | 1727 } // namespace ash |
| OLD | NEW |