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/wm/solo_window_tracker.h" | 5 #include "ash/wm/solo_window_tracker.h" |
6 | 6 |
7 #include "ash/ash_constants.h" | 7 #include "ash/ash_constants.h" |
8 #include "ash/ash_switches.h" | 8 #include "ash/ash_switches.h" |
9 #include "ash/root_window_controller.h" | 9 #include "ash/root_window_controller.h" |
10 #include "ash/screen_ash.h" | 10 #include "ash/screen_ash.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 window->SetBounds(gfx::Rect(100, 100)); | 96 window->SetBounds(gfx::Rect(100, 100)); |
97 ParentWindowInPrimaryRootWindow(window); | 97 ParentWindowInPrimaryRootWindow(window); |
98 return window; | 98 return window; |
99 } | 99 } |
100 | 100 |
101 // Drag |window| to the dock. | 101 // Drag |window| to the dock. |
102 void DockWindow(aura::Window* window) { | 102 void DockWindow(aura::Window* window) { |
103 // Because the tests use windows without delegates, | 103 // Because the tests use windows without delegates, |
104 // aura::test::EventGenerator cannot be used. | 104 // aura::test::EventGenerator cannot be used. |
105 gfx::Point drag_to = | 105 gfx::Point drag_to = |
106 ash::ScreenAsh::GetDisplayBoundsInParent(window).top_right(); | 106 ash::ScreenUtil::GetDisplayBoundsInParent(window).top_right(); |
107 scoped_ptr<WindowResizer> resizer(CreateWindowResizer( | 107 scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
108 window, | 108 window, |
109 window->bounds().origin(), | 109 window->bounds().origin(), |
110 HTCAPTION, | 110 HTCAPTION, |
111 aura::client::WINDOW_MOVE_SOURCE_MOUSE)); | 111 aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
112 resizer->Drag(drag_to, 0); | 112 resizer->Drag(drag_to, 0); |
113 resizer->CompleteDrag(); | 113 resizer->CompleteDrag(); |
114 EXPECT_EQ(internal::kShellWindowId_DockedContainer, | 114 EXPECT_EQ(internal::kShellWindowId_DockedContainer, |
115 window->parent()->id()); | 115 window->parent()->id()); |
116 } | 116 } |
117 | 117 |
118 // Drag |window| out of the dock. | 118 // Drag |window| out of the dock. |
119 void UndockWindow(aura::Window* window) { | 119 void UndockWindow(aura::Window* window) { |
120 gfx::Point drag_to = | 120 gfx::Point drag_to = |
121 ash::ScreenAsh::GetDisplayWorkAreaBoundsInParent(window).top_right() - | 121 ash::ScreenUtil::GetDisplayWorkAreaBoundsInParent(window).top_right() - |
122 gfx::Vector2d(10, 0); | 122 gfx::Vector2d(10, 0); |
123 scoped_ptr<WindowResizer> resizer(CreateWindowResizer( | 123 scoped_ptr<WindowResizer> resizer(CreateWindowResizer( |
124 window, | 124 window, |
125 window->bounds().origin(), | 125 window->bounds().origin(), |
126 HTCAPTION, | 126 HTCAPTION, |
127 aura::client::WINDOW_MOVE_SOURCE_MOUSE)); | 127 aura::client::WINDOW_MOVE_SOURCE_MOUSE)); |
128 resizer->Drag(drag_to, 0); | 128 resizer->Drag(drag_to, 0); |
129 resizer->CompleteDrag(); | 129 resizer->CompleteDrag(); |
130 EXPECT_NE(internal::kShellWindowId_DockedContainer, | 130 EXPECT_NE(internal::kShellWindowId_DockedContainer, |
131 window->parent()->id()); | 131 window->parent()->id()); |
132 } | 132 } |
133 | 133 |
134 // Returns the primary display. | 134 // Returns the primary display. |
135 gfx::Display GetPrimaryDisplay() { | 135 gfx::Display GetPrimaryDisplay() { |
136 return ash::Shell::GetInstance()->GetScreen()->GetPrimaryDisplay(); | 136 return ash::Shell::GetInstance()->GetScreen()->GetPrimaryDisplay(); |
137 } | 137 } |
138 | 138 |
139 // Returns the secondary display. | 139 // Returns the secondary display. |
140 gfx::Display GetSecondaryDisplay() { | 140 gfx::Display GetSecondaryDisplay() { |
141 return ScreenAsh::GetSecondaryDisplay(); | 141 return ScreenUtil::GetSecondaryDisplay(); |
142 } | 142 } |
143 | 143 |
144 // Returns the window which uses the solo header, if any, on the primary | 144 // Returns the window which uses the solo header, if any, on the primary |
145 // display. | 145 // display. |
146 aura::Window* GetWindowWithSoloHeaderInPrimary() { | 146 aura::Window* GetWindowWithSoloHeaderInPrimary() { |
147 return GetWindowWithSoloHeader(Shell::GetPrimaryRootWindow()); | 147 return GetWindowWithSoloHeader(Shell::GetPrimaryRootWindow()); |
148 } | 148 } |
149 | 149 |
150 // Returns the window which uses the solo header, if any, in |root|. | 150 // Returns the window which uses the solo header, if any, in |root|. |
151 aura::Window* GetWindowWithSoloHeader(aura::Window* root) { | 151 aura::Window* GetWindowWithSoloHeader(aura::Window* root) { |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 WindowRepaintChecker checker2(w2.get()); | 322 WindowRepaintChecker checker2(w2.get()); |
323 | 323 |
324 // Now there are two windows in the same display, so we should not use solo | 324 // Now there are two windows in the same display, so we should not use solo |
325 // headers. | 325 // headers. |
326 EXPECT_EQ(NULL, GetWindowWithSoloHeaderInPrimary()); | 326 EXPECT_EQ(NULL, GetWindowWithSoloHeaderInPrimary()); |
327 EXPECT_TRUE(checker1.IsPaintScheduledAndReset()); | 327 EXPECT_TRUE(checker1.IsPaintScheduledAndReset()); |
328 | 328 |
329 // Moves the second window to the secondary display. Both w1/w2 should be | 329 // Moves the second window to the secondary display. Both w1/w2 should be |
330 // solo. | 330 // solo. |
331 w2->SetBoundsInScreen(gfx::Rect(1200, 0, 100, 100), | 331 w2->SetBoundsInScreen(gfx::Rect(1200, 0, 100, 100), |
332 ScreenAsh::GetSecondaryDisplay()); | 332 ScreenUtil::GetSecondaryDisplay()); |
333 EXPECT_EQ(w1.get(), GetWindowWithSoloHeaderInPrimary()); | 333 EXPECT_EQ(w1.get(), GetWindowWithSoloHeaderInPrimary()); |
334 EXPECT_EQ(w2.get(), GetWindowWithSoloHeader(w2->GetRootWindow())); | 334 EXPECT_EQ(w2.get(), GetWindowWithSoloHeader(w2->GetRootWindow())); |
335 EXPECT_TRUE(checker1.IsPaintScheduledAndReset()); | 335 EXPECT_TRUE(checker1.IsPaintScheduledAndReset()); |
336 EXPECT_TRUE(checker2.IsPaintScheduledAndReset()); | 336 EXPECT_TRUE(checker2.IsPaintScheduledAndReset()); |
337 | 337 |
338 // Open two more windows in the primary display. | 338 // Open two more windows in the primary display. |
339 scoped_ptr<aura::Window> w3(CreateWindowInPrimary()); | 339 scoped_ptr<aura::Window> w3(CreateWindowInPrimary()); |
340 w3->SetBoundsInScreen(gfx::Rect(0, 0, 100, 100), GetPrimaryDisplay()); | 340 w3->SetBoundsInScreen(gfx::Rect(0, 0, 100, 100), GetPrimaryDisplay()); |
341 w3->Show(); | 341 w3->Show(); |
342 scoped_ptr<aura::Window> w4(CreateWindowInPrimary()); | 342 scoped_ptr<aura::Window> w4(CreateWindowInPrimary()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 w.reset(); | 420 w.reset(); |
421 EXPECT_EQ(NULL, GetWindowWithSoloHeaderInPrimary()); | 421 EXPECT_EQ(NULL, GetWindowWithSoloHeaderInPrimary()); |
422 | 422 |
423 // Recreate another window again. | 423 // Recreate another window again. |
424 w.reset(CreateWindowInPrimary()); | 424 w.reset(CreateWindowInPrimary()); |
425 w->Show(); | 425 w->Show(); |
426 EXPECT_EQ(w.get(), GetWindowWithSoloHeaderInPrimary()); | 426 EXPECT_EQ(w.get(), GetWindowWithSoloHeaderInPrimary()); |
427 } | 427 } |
428 | 428 |
429 } // namespace ash | 429 } // namespace ash |
OLD | NEW |