| 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/common/wm/workspace/workspace_layout_manager.h" | 5 #include "ash/common/wm/workspace/workspace_layout_manager.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "ash/aura/wm_window_aura.h" | 10 #include "ash/aura/wm_window_aura.h" |
| (...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 658 always_on_top_window2->SetProperty(aura::client::kAlwaysOnTopKey, true); | 658 always_on_top_window2->SetProperty(aura::client::kAlwaysOnTopKey, true); |
| 659 // Making a window fullscreen temporarily suspends always on top state. | 659 // Making a window fullscreen temporarily suspends always on top state. |
| 660 fullscreen_window->SetProperty(aura::client::kShowStateKey, | 660 fullscreen_window->SetProperty(aura::client::kShowStateKey, |
| 661 ui::SHOW_STATE_FULLSCREEN); | 661 ui::SHOW_STATE_FULLSCREEN); |
| 662 EXPECT_FALSE( | 662 EXPECT_FALSE( |
| 663 always_on_top_window1->GetProperty(aura::client::kAlwaysOnTopKey)); | 663 always_on_top_window1->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 664 EXPECT_FALSE( | 664 EXPECT_FALSE( |
| 665 always_on_top_window2->GetProperty(aura::client::kAlwaysOnTopKey)); | 665 always_on_top_window2->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 666 EXPECT_NE(nullptr, GetRootWindowController(fullscreen_window->GetRootWindow()) | 666 EXPECT_NE(nullptr, GetRootWindowController(fullscreen_window->GetRootWindow()) |
| 667 ->GetWindowForFullscreenMode()); | 667 ->GetWindowForFullscreenMode()); |
| 668 |
| 669 // Adding a new always-on-top window is not affected by fullscreen. |
| 670 std::unique_ptr<aura::Window> always_on_top_window3(CreateTestWindow(bounds)); |
| 671 always_on_top_window3->SetProperty(aura::client::kAlwaysOnTopKey, true); |
| 672 EXPECT_TRUE( |
| 673 always_on_top_window3->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 674 |
| 668 // Making fullscreen window normal restores always on top windows. | 675 // Making fullscreen window normal restores always on top windows. |
| 669 fullscreen_window->SetProperty(aura::client::kShowStateKey, | 676 fullscreen_window->SetProperty(aura::client::kShowStateKey, |
| 670 ui::SHOW_STATE_NORMAL); | 677 ui::SHOW_STATE_NORMAL); |
| 671 EXPECT_TRUE( | 678 EXPECT_TRUE( |
| 672 always_on_top_window1->GetProperty(aura::client::kAlwaysOnTopKey)); | 679 always_on_top_window1->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 673 EXPECT_TRUE( | 680 EXPECT_TRUE( |
| 674 always_on_top_window2->GetProperty(aura::client::kAlwaysOnTopKey)); | 681 always_on_top_window2->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 682 EXPECT_TRUE( |
| 683 always_on_top_window3->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 675 EXPECT_EQ(nullptr, GetRootWindowController(fullscreen_window->GetRootWindow()) | 684 EXPECT_EQ(nullptr, GetRootWindowController(fullscreen_window->GetRootWindow()) |
| 676 ->GetWindowForFullscreenMode()); | 685 ->GetWindowForFullscreenMode()); |
| 677 } | 686 } |
| 678 | 687 |
| 688 // Similary, pinned window causes always_on_top_ windows to stack below. |
| 689 TEST_F(WorkspaceLayoutManagerSoloTest, PinnedSuspendsAlwaysOnTop) { |
| 690 gfx::Rect bounds(100, 100, 200, 200); |
| 691 std::unique_ptr<aura::Window> pinned_window(CreateTestWindow(bounds)); |
| 692 std::unique_ptr<aura::Window> always_on_top_window1(CreateTestWindow(bounds)); |
| 693 std::unique_ptr<aura::Window> always_on_top_window2(CreateTestWindow(bounds)); |
| 694 always_on_top_window1->SetProperty(aura::client::kAlwaysOnTopKey, true); |
| 695 always_on_top_window2->SetProperty(aura::client::kAlwaysOnTopKey, true); |
| 696 |
| 697 // Making a window pinned temporarily suspends always on top state. |
| 698 wm::PinWindow(pinned_window.get()); |
| 699 EXPECT_FALSE( |
| 700 always_on_top_window1->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 701 EXPECT_FALSE( |
| 702 always_on_top_window2->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 703 |
| 704 // Adding a new always-on-top window also is affected by pinned mode. |
| 705 std::unique_ptr<aura::Window> always_on_top_window3(CreateTestWindow(bounds)); |
| 706 always_on_top_window3->SetProperty(aura::client::kAlwaysOnTopKey, true); |
| 707 EXPECT_FALSE( |
| 708 always_on_top_window3->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 709 |
| 710 // Making pinned window normal restores always on top windows. |
| 711 WmWindowAura::Get(pinned_window.get())->GetWindowState()->Restore(); |
| 712 EXPECT_TRUE( |
| 713 always_on_top_window1->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 714 EXPECT_TRUE( |
| 715 always_on_top_window2->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 716 EXPECT_TRUE( |
| 717 always_on_top_window3->GetProperty(aura::client::kAlwaysOnTopKey)); |
| 718 } |
| 719 |
| 679 // Tests fullscreen window size during root window resize. | 720 // Tests fullscreen window size during root window resize. |
| 680 TEST_F(WorkspaceLayoutManagerSoloTest, FullscreenRootWindowResize) { | 721 TEST_F(WorkspaceLayoutManagerSoloTest, FullscreenRootWindowResize) { |
| 681 gfx::Rect bounds(100, 100, 200, 200); | 722 gfx::Rect bounds(100, 100, 200, 200); |
| 682 std::unique_ptr<aura::Window> window(CreateTestWindow(bounds)); | 723 std::unique_ptr<aura::Window> window(CreateTestWindow(bounds)); |
| 683 // Fullscreen window fills the whole display. | 724 // Fullscreen window fills the whole display. |
| 684 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); | 725 window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_FULLSCREEN); |
| 685 EXPECT_EQ(display::Screen::GetScreen() | 726 EXPECT_EQ(display::Screen::GetScreen() |
| 686 ->GetDisplayNearestWindow(window.get()) | 727 ->GetDisplayNearestWindow(window.get()) |
| 687 .bounds() | 728 .bounds() |
| 688 .ToString(), | 729 .ToString(), |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1152 EXPECT_EQ(gfx::Rect(50, | 1193 EXPECT_EQ(gfx::Rect(50, |
| 1153 keyboard_bounds.y() - keyboard_bounds.height()/2, | 1194 keyboard_bounds.y() - keyboard_bounds.height()/2, |
| 1154 occluded_window_bounds.width(), | 1195 occluded_window_bounds.width(), |
| 1155 occluded_window_bounds.height()).ToString(), | 1196 occluded_window_bounds.height()).ToString(), |
| 1156 window->bounds().ToString()); | 1197 window->bounds().ToString()); |
| 1157 HideKeyboard(); | 1198 HideKeyboard(); |
| 1158 EXPECT_EQ(occluded_window_bounds.ToString(), window->bounds().ToString()); | 1199 EXPECT_EQ(occluded_window_bounds.ToString(), window->bounds().ToString()); |
| 1159 } | 1200 } |
| 1160 | 1201 |
| 1161 } // namespace ash | 1202 } // namespace ash |
| OLD | NEW |