| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/launcher/launcher.h" | 5 #include "ash/launcher/launcher.h" |
| 6 #include "ash/root_window_controller.h" | 6 #include "ash/root_window_controller.h" |
| 7 #include "ash/screen_ash.h" | 7 #include "ash/screen_ash.h" |
| 8 #include "ash/shelf/shelf_widget.h" | 8 #include "ash/shelf/shelf_widget.h" |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/test/ash_test_base.h" | 10 #include "ash/test/ash_test_base.h" |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 #include "ui/aura/client/cursor_client.h" | 26 #include "ui/aura/client/cursor_client.h" |
| 27 #include "ui/aura/client/focus_client.h" | 27 #include "ui/aura/client/focus_client.h" |
| 28 #include "ui/aura/root_window.h" | 28 #include "ui/aura/root_window.h" |
| 29 #include "ui/aura/test/event_generator.h" | 29 #include "ui/aura/test/event_generator.h" |
| 30 #include "ui/aura/test/test_window_delegate.h" | 30 #include "ui/aura/test/test_window_delegate.h" |
| 31 #include "ui/aura/test/test_windows.h" | 31 #include "ui/aura/test/test_windows.h" |
| 32 #include "ui/aura/window.h" | 32 #include "ui/aura/window.h" |
| 33 #include "ui/compositor/scoped_animation_duration_scale_mode.h" | 33 #include "ui/compositor/scoped_animation_duration_scale_mode.h" |
| 34 #include "ui/gfx/rect_conversions.h" | 34 #include "ui/gfx/rect_conversions.h" |
| 35 #include "ui/gfx/transform.h" | 35 #include "ui/gfx/transform.h" |
| 36 #include "ui/views/corewm/transient_window_manager.h" |
| 36 | 37 |
| 37 namespace ash { | 38 namespace ash { |
| 38 namespace internal { | 39 namespace internal { |
| 39 | 40 |
| 40 namespace { | 41 namespace { |
| 41 | 42 |
| 42 class NonActivatableActivationDelegate | 43 class NonActivatableActivationDelegate |
| 43 : public aura::client::ActivationDelegate { | 44 : public aura::client::ActivationDelegate { |
| 44 public: | 45 public: |
| 45 virtual bool ShouldActivate() const OVERRIDE { | 46 virtual bool ShouldActivate() const OVERRIDE { |
| (...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 EXPECT_TRUE(wm::IsActiveWindow(window1.get())); | 686 EXPECT_TRUE(wm::IsActiveWindow(window1.get())); |
| 686 } | 687 } |
| 687 | 688 |
| 688 // Tests that windows with modal child windows are transformed with the modal | 689 // Tests that windows with modal child windows are transformed with the modal |
| 689 // child even though not activatable themselves. | 690 // child even though not activatable themselves. |
| 690 TEST_F(WindowSelectorTest, ModalChild) { | 691 TEST_F(WindowSelectorTest, ModalChild) { |
| 691 gfx::Rect bounds(0, 0, 400, 400); | 692 gfx::Rect bounds(0, 0, 400, 400); |
| 692 scoped_ptr<aura::Window> window1(CreateWindow(bounds)); | 693 scoped_ptr<aura::Window> window1(CreateWindow(bounds)); |
| 693 scoped_ptr<aura::Window> child1(CreateWindow(bounds)); | 694 scoped_ptr<aura::Window> child1(CreateWindow(bounds)); |
| 694 child1->SetProperty(aura::client::kModalKey, ui::MODAL_TYPE_WINDOW); | 695 child1->SetProperty(aura::client::kModalKey, ui::MODAL_TYPE_WINDOW); |
| 695 window1->AddTransientChild(child1.get()); | 696 views::corewm::AddTransientChild(window1.get(), child1.get()); |
| 696 EXPECT_EQ(window1->parent(), child1->parent()); | 697 EXPECT_EQ(window1->parent(), child1->parent()); |
| 697 ToggleOverview(); | 698 ToggleOverview(); |
| 698 EXPECT_TRUE(window1->IsVisible()); | 699 EXPECT_TRUE(window1->IsVisible()); |
| 699 EXPECT_TRUE(child1->IsVisible()); | 700 EXPECT_TRUE(child1->IsVisible()); |
| 700 EXPECT_EQ(ToEnclosingRect(GetTransformedTargetBounds(child1.get())), | 701 EXPECT_EQ(ToEnclosingRect(GetTransformedTargetBounds(child1.get())), |
| 701 ToEnclosingRect(GetTransformedTargetBounds(window1.get()))); | 702 ToEnclosingRect(GetTransformedTargetBounds(window1.get()))); |
| 702 ToggleOverview(); | 703 ToggleOverview(); |
| 703 } | 704 } |
| 704 | 705 |
| 705 // Tests that clicking a modal window's parent activates the modal window in | 706 // Tests that clicking a modal window's parent activates the modal window in |
| 706 // overview. | 707 // overview. |
| 707 TEST_F(WindowSelectorTest, ClickModalWindowParent) { | 708 TEST_F(WindowSelectorTest, ClickModalWindowParent) { |
| 708 scoped_ptr<aura::Window> window1(CreateWindow(gfx::Rect(0, 0, 180, 180))); | 709 scoped_ptr<aura::Window> window1(CreateWindow(gfx::Rect(0, 0, 180, 180))); |
| 709 scoped_ptr<aura::Window> child1(CreateWindow(gfx::Rect(200, 0, 180, 180))); | 710 scoped_ptr<aura::Window> child1(CreateWindow(gfx::Rect(200, 0, 180, 180))); |
| 710 child1->SetProperty(aura::client::kModalKey, ui::MODAL_TYPE_WINDOW); | 711 child1->SetProperty(aura::client::kModalKey, ui::MODAL_TYPE_WINDOW); |
| 711 window1->AddTransientChild(child1.get()); | 712 views::corewm::AddTransientChild(window1.get(), child1.get()); |
| 712 EXPECT_FALSE(WindowsOverlapping(window1.get(), child1.get())); | 713 EXPECT_FALSE(WindowsOverlapping(window1.get(), child1.get())); |
| 713 EXPECT_EQ(window1->parent(), child1->parent()); | 714 EXPECT_EQ(window1->parent(), child1->parent()); |
| 714 ToggleOverview(); | 715 ToggleOverview(); |
| 715 // Given that their relative positions are preserved, the windows should still | 716 // Given that their relative positions are preserved, the windows should still |
| 716 // not overlap. | 717 // not overlap. |
| 717 EXPECT_FALSE(WindowsOverlapping(window1.get(), child1.get())); | 718 EXPECT_FALSE(WindowsOverlapping(window1.get(), child1.get())); |
| 718 ClickWindow(window1.get()); | 719 ClickWindow(window1.get()); |
| 719 EXPECT_FALSE(IsSelecting()); | 720 EXPECT_FALSE(IsSelecting()); |
| 720 | 721 |
| 721 // Clicking on window1 should activate child1. | 722 // Clicking on window1 should activate child1. |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 822 gfx::Rect root1_rect(0, 0, 100, 100); | 823 gfx::Rect root1_rect(0, 0, 100, 100); |
| 823 gfx::Rect root2_rect(450, 0, 100, 100); | 824 gfx::Rect root2_rect(450, 0, 100, 100); |
| 824 scoped_ptr<aura::Window> unmoved1(CreateWindow(root2_rect)); | 825 scoped_ptr<aura::Window> unmoved1(CreateWindow(root2_rect)); |
| 825 scoped_ptr<aura::Window> unmoved2(CreateWindow(root2_rect)); | 826 scoped_ptr<aura::Window> unmoved2(CreateWindow(root2_rect)); |
| 826 scoped_ptr<aura::Window> moved1_trans_parent(CreateWindow(root1_rect)); | 827 scoped_ptr<aura::Window> moved1_trans_parent(CreateWindow(root1_rect)); |
| 827 scoped_ptr<aura::Window> moved1(CreateWindow(root1_rect)); | 828 scoped_ptr<aura::Window> moved1(CreateWindow(root1_rect)); |
| 828 unmoved1->SetName("unmoved1"); | 829 unmoved1->SetName("unmoved1"); |
| 829 unmoved2->SetName("unmoved2"); | 830 unmoved2->SetName("unmoved2"); |
| 830 moved1->SetName("moved1"); | 831 moved1->SetName("moved1"); |
| 831 moved1->SetProperty(aura::client::kModalKey, ui::MODAL_TYPE_WINDOW); | 832 moved1->SetProperty(aura::client::kModalKey, ui::MODAL_TYPE_WINDOW); |
| 832 moved1_trans_parent->AddTransientChild(moved1.get()); | 833 views::corewm::AddTransientChild(moved1_trans_parent.get(), moved1.get()); |
| 833 moved1_trans_parent->SetName("moved1_trans_parent"); | 834 moved1_trans_parent->SetName("moved1_trans_parent"); |
| 834 | 835 |
| 835 EXPECT_EQ(root_windows[0], moved1->GetRootWindow()); | 836 EXPECT_EQ(root_windows[0], moved1->GetRootWindow()); |
| 836 EXPECT_EQ(root_windows[0], moved1_trans_parent->GetRootWindow()); | 837 EXPECT_EQ(root_windows[0], moved1_trans_parent->GetRootWindow()); |
| 837 EXPECT_EQ(root_windows[1], unmoved1->GetRootWindow()); | 838 EXPECT_EQ(root_windows[1], unmoved1->GetRootWindow()); |
| 838 EXPECT_EQ(root_windows[1], unmoved2->GetRootWindow()); | 839 EXPECT_EQ(root_windows[1], unmoved2->GetRootWindow()); |
| 839 wm::ActivateWindow(unmoved2.get()); | 840 wm::ActivateWindow(unmoved2.get()); |
| 840 wm::ActivateWindow(unmoved1.get()); | 841 wm::ActivateWindow(unmoved1.get()); |
| 841 | 842 |
| 842 Cycle(WindowSelector::FORWARD); | 843 Cycle(WindowSelector::FORWARD); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 941 ToEnclosingRect(GetTransformedTargetBounds(window1.get())); | 942 ToEnclosingRect(GetTransformedTargetBounds(window1.get())); |
| 942 EXPECT_EQ(overview_bounds.x(), new_overview_bounds.x()); | 943 EXPECT_EQ(overview_bounds.x(), new_overview_bounds.x()); |
| 943 EXPECT_EQ(overview_bounds.y(), new_overview_bounds.y()); | 944 EXPECT_EQ(overview_bounds.y(), new_overview_bounds.y()); |
| 944 EXPECT_EQ(overview_bounds.width(), new_overview_bounds.width()); | 945 EXPECT_EQ(overview_bounds.width(), new_overview_bounds.width()); |
| 945 EXPECT_EQ(overview_bounds.height(), new_overview_bounds.height()); | 946 EXPECT_EQ(overview_bounds.height(), new_overview_bounds.height()); |
| 946 StopCycling(); | 947 StopCycling(); |
| 947 } | 948 } |
| 948 | 949 |
| 949 } // namespace internal | 950 } // namespace internal |
| 950 } // namespace ash | 951 } // namespace ash |
| OLD | NEW |