Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(364)

Side by Side Diff: ash/wm/overview/window_selector_unittest.cc

Issue 23654037: Add panels as a single group of windows per display for overview window cycling. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix restored panel relayout when some panels minimized. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/wm/overview/window_selector_panels.cc ('k') | ash/wm/overview/window_selector_window.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/root_window_controller.h" 6 #include "ash/root_window_controller.h"
6 #include "ash/screen_ash.h" 7 #include "ash/screen_ash.h"
7 #include "ash/shell.h" 8 #include "ash/shell.h"
8 #include "ash/test/ash_test_base.h" 9 #include "ash/test/ash_test_base.h"
10 #include "ash/test/launcher_test_api.h"
11 #include "ash/test/launcher_view_test_api.h"
9 #include "ash/test/shell_test_api.h" 12 #include "ash/test/shell_test_api.h"
13 #include "ash/test/test_launcher_delegate.h"
10 #include "ash/wm/mru_window_tracker.h" 14 #include "ash/wm/mru_window_tracker.h"
11 #include "ash/wm/overview/window_selector.h" 15 #include "ash/wm/overview/window_selector.h"
12 #include "ash/wm/overview/window_selector_controller.h" 16 #include "ash/wm/overview/window_selector_controller.h"
13 #include "ash/wm/window_util.h" 17 #include "ash/wm/window_util.h"
14 #include "base/basictypes.h" 18 #include "base/basictypes.h"
15 #include "base/compiler_specific.h" 19 #include "base/compiler_specific.h"
16 #include "base/memory/scoped_vector.h" 20 #include "base/memory/scoped_vector.h"
17 #include "base/run_loop.h" 21 #include "base/run_loop.h"
18 #include "ui/aura/client/aura_constants.h" 22 #include "ui/aura/client/aura_constants.h"
19 #include "ui/aura/client/focus_client.h" 23 #include "ui/aura/client/focus_client.h"
20 #include "ui/aura/root_window.h" 24 #include "ui/aura/root_window.h"
21 #include "ui/aura/test/event_generator.h" 25 #include "ui/aura/test/event_generator.h"
22 #include "ui/aura/test/test_window_delegate.h" 26 #include "ui/aura/test/test_window_delegate.h"
23 #include "ui/aura/test/test_windows.h" 27 #include "ui/aura/test/test_windows.h"
24 #include "ui/aura/window.h" 28 #include "ui/aura/window.h"
25 #include "ui/compositor/scoped_animation_duration_scale_mode.h" 29 #include "ui/compositor/scoped_animation_duration_scale_mode.h"
26 #include "ui/gfx/rect_conversions.h" 30 #include "ui/gfx/rect_conversions.h"
27 #include "ui/gfx/transform.h" 31 #include "ui/gfx/transform.h"
28 32
29 namespace ash { 33 namespace ash {
30 namespace internal { 34 namespace internal {
31 35
32 class WindowSelectorTest : public test::AshTestBase { 36 class WindowSelectorTest : public test::AshTestBase {
33 public: 37 public:
34 WindowSelectorTest() {} 38 WindowSelectorTest() {}
35 virtual ~WindowSelectorTest() {} 39 virtual ~WindowSelectorTest() {}
36 40
41 virtual void SetUp() OVERRIDE {
42 test::AshTestBase::SetUp();
43 ASSERT_TRUE(test::TestLauncherDelegate::instance());
44
45 launcher_view_test_.reset(new test::LauncherViewTestAPI(
46 test::LauncherTestAPI(Launcher::ForPrimaryDisplay()).launcher_view()));
47 launcher_view_test_->SetAnimationDuration(1);
48 }
49
37 aura::Window* CreateWindow(const gfx::Rect& bounds) { 50 aura::Window* CreateWindow(const gfx::Rect& bounds) {
38 return CreateTestWindowInShellWithDelegate(&wd, -1, bounds); 51 return CreateTestWindowInShellWithDelegate(&wd, -1, bounds);
39 } 52 }
40 53
54 aura::Window* CreatePanelWindow(const gfx::Rect& bounds) {
55 aura::Window* window = CreateTestWindowInShellWithDelegateAndType(
56 NULL, aura::client::WINDOW_TYPE_PANEL, 0, bounds);
57 test::TestLauncherDelegate::instance()->AddLauncherItem(window);
58 launcher_view_test()->RunMessageLoopUntilAnimationsDone();
59 return window;
60 }
61
41 bool WindowsOverlapping(aura::Window* window1, aura::Window* window2) { 62 bool WindowsOverlapping(aura::Window* window1, aura::Window* window2) {
42 gfx::RectF window1_bounds = GetTransformedTargetBounds(window1); 63 gfx::RectF window1_bounds = GetTransformedTargetBounds(window1);
43 gfx::RectF window2_bounds = GetTransformedTargetBounds(window2); 64 gfx::RectF window2_bounds = GetTransformedTargetBounds(window2);
44 return window1_bounds.Intersects(window2_bounds); 65 return window1_bounds.Intersects(window2_bounds);
45 } 66 }
46 67
47 void ToggleOverview() { 68 void ToggleOverview() {
48 ash::Shell::GetInstance()->window_selector_controller()->ToggleOverview(); 69 ash::Shell::GetInstance()->window_selector_controller()->ToggleOverview();
49 } 70 }
50 71
(...skipping 10 matching lines...) Expand all
61 void FireOverviewStartTimer() { 82 void FireOverviewStartTimer() {
62 // Calls the method to start overview mode which is normally called by the 83 // Calls the method to start overview mode which is normally called by the
63 // timer. The timer will still fire and call this method triggering the 84 // timer. The timer will still fire and call this method triggering the
64 // DCHECK that overview mode was not already started, except that we call 85 // DCHECK that overview mode was not already started, except that we call
65 // StopCycling before the timer has a chance to fire. 86 // StopCycling before the timer has a chance to fire.
66 ash::Shell::GetInstance()->window_selector_controller()->window_selector_-> 87 ash::Shell::GetInstance()->window_selector_controller()->window_selector_->
67 StartOverview(); 88 StartOverview();
68 } 89 }
69 90
70 gfx::RectF GetTransformedBounds(aura::Window* window) { 91 gfx::RectF GetTransformedBounds(aura::Window* window) {
71 gfx::RectF bounds(window->layer()->bounds()); 92 gfx::RectF bounds(ash::ScreenAsh::ConvertRectToScreen(
93 window->parent(), window->layer()->bounds()));
72 window->layer()->transform().TransformRect(&bounds); 94 window->layer()->transform().TransformRect(&bounds);
73 return bounds; 95 return bounds;
74 } 96 }
75 97
76 gfx::RectF GetTransformedTargetBounds(aura::Window* window) { 98 gfx::RectF GetTransformedTargetBounds(aura::Window* window) {
77 gfx::RectF bounds(window->layer()->GetTargetBounds()); 99 gfx::RectF bounds(ash::ScreenAsh::ConvertRectToScreen(
100 window->parent(), window->layer()->GetTargetBounds()));
78 window->layer()->GetTargetTransform().TransformRect(&bounds); 101 window->layer()->GetTargetTransform().TransformRect(&bounds);
79 return bounds; 102 return bounds;
80 } 103 }
81 104
82 void ClickWindow(aura::Window* window) { 105 void ClickWindow(aura::Window* window) {
83 aura::test::EventGenerator event_generator(window->GetRootWindow(), window); 106 aura::test::EventGenerator event_generator(window->GetRootWindow(), window);
84 gfx::RectF target = GetTransformedBounds(window); 107 gfx::RectF target = GetTransformedBounds(window);
85 event_generator.ClickLeftButton(); 108 event_generator.ClickLeftButton();
86 } 109 }
87 110
88 bool IsSelecting() { 111 bool IsSelecting() {
89 return ash::Shell::GetInstance()->window_selector_controller()-> 112 return ash::Shell::GetInstance()->window_selector_controller()->
90 IsSelecting(); 113 IsSelecting();
91 } 114 }
92 115
93 aura::Window* GetFocusedWindow() { 116 aura::Window* GetFocusedWindow() {
94 return aura::client::GetFocusClient( 117 return aura::client::GetFocusClient(
95 Shell::GetPrimaryRootWindow())->GetFocusedWindow(); 118 Shell::GetPrimaryRootWindow())->GetFocusedWindow();
96 } 119 }
97 120
121 test::LauncherViewTestAPI* launcher_view_test() {
122 return launcher_view_test_.get();
123 }
124
98 private: 125 private:
99 aura::test::TestWindowDelegate wd; 126 aura::test::TestWindowDelegate wd;
127 scoped_ptr<test::LauncherViewTestAPI> launcher_view_test_;
100 128
101 DISALLOW_COPY_AND_ASSIGN(WindowSelectorTest); 129 DISALLOW_COPY_AND_ASSIGN(WindowSelectorTest);
102 }; 130 };
103 131
104 // Tests entering overview mode with two windows and selecting one. 132 // Tests entering overview mode with two windows and selecting one.
105 TEST_F(WindowSelectorTest, Basic) { 133 TEST_F(WindowSelectorTest, Basic) {
106 gfx::Rect bounds(0, 0, 400, 400); 134 gfx::Rect bounds(0, 0, 400, 400);
107 scoped_ptr<aura::Window> window1(CreateWindow(bounds)); 135 scoped_ptr<aura::Window> window1(CreateWindow(bounds));
108 scoped_ptr<aura::Window> window2(CreateWindow(bounds)); 136 scoped_ptr<aura::Window> window2(CreateWindow(bounds));
137 scoped_ptr<aura::Window> panel1(CreatePanelWindow(bounds));
138 scoped_ptr<aura::Window> panel2(CreatePanelWindow(bounds));
109 EXPECT_TRUE(WindowsOverlapping(window1.get(), window2.get())); 139 EXPECT_TRUE(WindowsOverlapping(window1.get(), window2.get()));
140 EXPECT_TRUE(WindowsOverlapping(window1.get(), panel1.get()));
141 EXPECT_TRUE(WindowsOverlapping(panel1.get(), panel2.get()));
110 wm::ActivateWindow(window2.get()); 142 wm::ActivateWindow(window2.get());
111 EXPECT_FALSE(wm::IsActiveWindow(window1.get())); 143 EXPECT_FALSE(wm::IsActiveWindow(window1.get()));
112 EXPECT_TRUE(wm::IsActiveWindow(window2.get())); 144 EXPECT_TRUE(wm::IsActiveWindow(window2.get()));
113 EXPECT_EQ(window2.get(), GetFocusedWindow()); 145 EXPECT_EQ(window2.get(), GetFocusedWindow());
114 146
115 // In overview mode the windows should no longer overlap and focus should 147 // In overview mode the windows should no longer overlap and focus should
116 // be removed from the window. 148 // be removed from the window.
117 ToggleOverview(); 149 ToggleOverview();
118 EXPECT_EQ(NULL, GetFocusedWindow()); 150 EXPECT_EQ(NULL, GetFocusedWindow());
119 EXPECT_FALSE(WindowsOverlapping(window1.get(), window2.get())); 151 EXPECT_FALSE(WindowsOverlapping(window1.get(), window2.get()));
152 EXPECT_FALSE(WindowsOverlapping(window1.get(), panel1.get()));
153 // Panels 1 and 2 should still be overlapping being in a single selector
154 // item.
155 EXPECT_TRUE(WindowsOverlapping(panel1.get(), panel2.get()));
120 156
121 // Clicking window 1 should activate it. 157 // Clicking window 1 should activate it.
122 ClickWindow(window1.get()); 158 ClickWindow(window1.get());
123 EXPECT_TRUE(wm::IsActiveWindow(window1.get())); 159 EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
124 EXPECT_FALSE(wm::IsActiveWindow(window2.get())); 160 EXPECT_FALSE(wm::IsActiveWindow(window2.get()));
125 EXPECT_EQ(window1.get(), GetFocusedWindow()); 161 EXPECT_EQ(window1.get(), GetFocusedWindow());
126 } 162 }
127 163
128 // Tests entering overview mode with three windows and cycling through them. 164 // Tests entering overview mode with three windows and cycling through them.
129 TEST_F(WindowSelectorTest, BasicCycle) { 165 TEST_F(WindowSelectorTest, BasicCycle) {
(...skipping 11 matching lines...) Expand all
141 Cycle(WindowSelector::FORWARD); 177 Cycle(WindowSelector::FORWARD);
142 EXPECT_TRUE(IsSelecting()); 178 EXPECT_TRUE(IsSelecting());
143 Cycle(WindowSelector::FORWARD); 179 Cycle(WindowSelector::FORWARD);
144 StopCycling(); 180 StopCycling();
145 EXPECT_FALSE(IsSelecting()); 181 EXPECT_FALSE(IsSelecting());
146 EXPECT_FALSE(wm::IsActiveWindow(window1.get())); 182 EXPECT_FALSE(wm::IsActiveWindow(window1.get()));
147 EXPECT_FALSE(wm::IsActiveWindow(window2.get())); 183 EXPECT_FALSE(wm::IsActiveWindow(window2.get()));
148 EXPECT_TRUE(wm::IsActiveWindow(window3.get())); 184 EXPECT_TRUE(wm::IsActiveWindow(window3.get()));
149 } 185 }
150 186
187 // Tests cycles between panel and normal windows.
188 TEST_F(WindowSelectorTest, CyclePanels) {
189 gfx::Rect bounds(0, 0, 400, 400);
190 scoped_ptr<aura::Window> window1(CreateWindow(bounds));
191 scoped_ptr<aura::Window> window2(CreateWindow(bounds));
192 scoped_ptr<aura::Window> panel1(CreatePanelWindow(bounds));
193 scoped_ptr<aura::Window> panel2(CreatePanelWindow(bounds));
194 wm::ActivateWindow(window2.get());
195 wm::ActivateWindow(window1.get());
196 wm::ActivateWindow(panel2.get());
197 wm::ActivateWindow(panel1.get());
198 EXPECT_TRUE(wm::IsActiveWindow(panel1.get()));
199
200 // Cycling once should select window1 since the panels are grouped into a
201 // single selectable item.
202 Cycle(WindowSelector::FORWARD);
203 StopCycling();
204 EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
205
206 // Cycling again should select the most recently used panel.
207 Cycle(WindowSelector::FORWARD);
208 StopCycling();
209 EXPECT_TRUE(wm::IsActiveWindow(panel1.get()));
210 }
211
212 // Tests cycles between panel and normal windows.
213 TEST_F(WindowSelectorTest, CyclePanelsDestroyed) {
214 gfx::Rect bounds(0, 0, 400, 400);
215 scoped_ptr<aura::Window> window1(CreateWindow(bounds));
216 scoped_ptr<aura::Window> window2(CreateWindow(bounds));
217 scoped_ptr<aura::Window> window3(CreateWindow(bounds));
218 scoped_ptr<aura::Window> panel1(CreatePanelWindow(bounds));
219 scoped_ptr<aura::Window> panel2(CreatePanelWindow(bounds));
220 wm::ActivateWindow(window3.get());
221 wm::ActivateWindow(panel2.get());
222 wm::ActivateWindow(panel1.get());
223 wm::ActivateWindow(window2.get());
224 wm::ActivateWindow(window1.get());
225 EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
226
227 // Cycling once highlights window2.
228 Cycle(WindowSelector::FORWARD);
229 // All panels are destroyed.
230 panel1.reset();
231 panel2.reset();
232 // Cycling again should now select window3.
233 Cycle(WindowSelector::FORWARD);
234 StopCycling();
235 EXPECT_TRUE(wm::IsActiveWindow(window3.get()));
236 }
237
238 // Tests cycles between panel and normal windows.
239 TEST_F(WindowSelectorTest, CycleMruPanelDestroyed) {
240 gfx::Rect bounds(0, 0, 400, 400);
241 scoped_ptr<aura::Window> window1(CreateWindow(bounds));
242 scoped_ptr<aura::Window> window2(CreateWindow(bounds));
243 scoped_ptr<aura::Window> panel1(CreatePanelWindow(bounds));
244 scoped_ptr<aura::Window> panel2(CreatePanelWindow(bounds));
245 wm::ActivateWindow(panel2.get());
246 wm::ActivateWindow(panel1.get());
247 wm::ActivateWindow(window2.get());
248 wm::ActivateWindow(window1.get());
249 EXPECT_TRUE(wm::IsActiveWindow(window1.get()));
250
251 // Cycling once highlights window2.
252 Cycle(WindowSelector::FORWARD);
253 // Panel 1 is the next item as the MRU panel, removing it should make panel 2
254 // the next window to be selected.
255 panel1.reset();
256 // Cycling again should now select window3.
257 Cycle(WindowSelector::FORWARD);
258 StopCycling();
259 EXPECT_TRUE(wm::IsActiveWindow(panel2.get()));
260 }
261
151 // Tests that a newly created window aborts overview. 262 // Tests that a newly created window aborts overview.
152 TEST_F(WindowSelectorTest, NewWindowCancelsOveriew) { 263 TEST_F(WindowSelectorTest, NewWindowCancelsOveriew) {
153 gfx::Rect bounds(0, 0, 400, 400); 264 gfx::Rect bounds(0, 0, 400, 400);
154 scoped_ptr<aura::Window> window1(CreateWindow(bounds)); 265 scoped_ptr<aura::Window> window1(CreateWindow(bounds));
155 scoped_ptr<aura::Window> window2(CreateWindow(bounds)); 266 scoped_ptr<aura::Window> window2(CreateWindow(bounds));
156 ToggleOverview(); 267 ToggleOverview();
157 EXPECT_TRUE(IsSelecting()); 268 EXPECT_TRUE(IsSelecting());
158 269
159 // A window being created should exit overview mode. 270 // A window being created should exit overview mode.
160 scoped_ptr<aura::Window> window3(CreateWindow(bounds)); 271 scoped_ptr<aura::Window> window3(CreateWindow(bounds));
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 EXPECT_EQ(initial_bounds, ToEnclosingRect( 361 EXPECT_EQ(initial_bounds, ToEnclosingRect(
251 GetTransformedTargetBounds(window.get()))); 362 GetTransformedTargetBounds(window.get())));
252 } 363 }
253 364
254 // Tests that windows remain on the display they are currently on in overview 365 // Tests that windows remain on the display they are currently on in overview
255 // mode. 366 // mode.
256 TEST_F(WindowSelectorTest, MultipleDisplays) { 367 TEST_F(WindowSelectorTest, MultipleDisplays) {
257 if (!SupportsMultipleDisplays()) 368 if (!SupportsMultipleDisplays())
258 return; 369 return;
259 370
260 UpdateDisplay("400x400,400x400"); 371 UpdateDisplay("600x400,600x400");
261 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); 372 Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
373 gfx::Rect bounds1(0, 0, 200, 200);
374 gfx::Rect bounds2(650, 0, 200, 200);
262 375
263 scoped_ptr<aura::Window> window1(CreateWindow(gfx::Rect(0, 0, 100, 100))); 376 scoped_ptr<aura::Window> window1(CreateWindow(bounds1));
264 scoped_ptr<aura::Window> window2(CreateWindow(gfx::Rect(0, 0, 100, 100))); 377 scoped_ptr<aura::Window> window2(CreateWindow(bounds1));
265 scoped_ptr<aura::Window> window3(CreateWindow(gfx::Rect(450, 0, 100, 100))); 378 scoped_ptr<aura::Window> window3(CreateWindow(bounds2));
266 scoped_ptr<aura::Window> window4(CreateWindow(gfx::Rect(450, 0, 100, 100))); 379 scoped_ptr<aura::Window> window4(CreateWindow(bounds2));
380 scoped_ptr<aura::Window> panel1(CreatePanelWindow(bounds1));
381 scoped_ptr<aura::Window> panel2(CreatePanelWindow(bounds1));
382 scoped_ptr<aura::Window> panel3(CreatePanelWindow(bounds2));
383 scoped_ptr<aura::Window> panel4(CreatePanelWindow(bounds2));
267 EXPECT_EQ(root_windows[0], window1->GetRootWindow()); 384 EXPECT_EQ(root_windows[0], window1->GetRootWindow());
268 EXPECT_EQ(root_windows[0], window2->GetRootWindow()); 385 EXPECT_EQ(root_windows[0], window2->GetRootWindow());
269 EXPECT_EQ(root_windows[1], window3->GetRootWindow()); 386 EXPECT_EQ(root_windows[1], window3->GetRootWindow());
270 EXPECT_EQ(root_windows[1], window4->GetRootWindow()); 387 EXPECT_EQ(root_windows[1], window4->GetRootWindow());
271 388
389 EXPECT_EQ(root_windows[0], panel1->GetRootWindow());
390 EXPECT_EQ(root_windows[0], panel2->GetRootWindow());
391 EXPECT_EQ(root_windows[1], panel3->GetRootWindow());
392 EXPECT_EQ(root_windows[1], panel4->GetRootWindow());
393
272 // In overview mode, each window remains in the same root window. 394 // In overview mode, each window remains in the same root window.
273 ToggleOverview(); 395 ToggleOverview();
274 EXPECT_EQ(root_windows[0], window1->GetRootWindow()); 396 EXPECT_EQ(root_windows[0], window1->GetRootWindow());
275 EXPECT_EQ(root_windows[0], window2->GetRootWindow()); 397 EXPECT_EQ(root_windows[0], window2->GetRootWindow());
276 EXPECT_EQ(root_windows[1], window3->GetRootWindow()); 398 EXPECT_EQ(root_windows[1], window3->GetRootWindow());
277 EXPECT_EQ(root_windows[1], window4->GetRootWindow()); 399 EXPECT_EQ(root_windows[1], window4->GetRootWindow());
400 EXPECT_EQ(root_windows[0], panel1->GetRootWindow());
401 EXPECT_EQ(root_windows[0], panel2->GetRootWindow());
402 EXPECT_EQ(root_windows[1], panel3->GetRootWindow());
403 EXPECT_EQ(root_windows[1], panel4->GetRootWindow());
404
278 root_windows[0]->bounds().Contains( 405 root_windows[0]->bounds().Contains(
279 ToEnclosingRect(GetTransformedBounds(window1.get()))); 406 ToEnclosingRect(GetTransformedBounds(window1.get())));
280 root_windows[0]->bounds().Contains( 407 root_windows[0]->bounds().Contains(
281 ToEnclosingRect(GetTransformedBounds(window2.get()))); 408 ToEnclosingRect(GetTransformedBounds(window2.get())));
282 root_windows[1]->bounds().Contains( 409 root_windows[1]->bounds().Contains(
283 ToEnclosingRect(GetTransformedBounds(window3.get()))); 410 ToEnclosingRect(GetTransformedBounds(window3.get())));
284 root_windows[1]->bounds().Contains( 411 root_windows[1]->bounds().Contains(
285 ToEnclosingRect(GetTransformedBounds(window4.get()))); 412 ToEnclosingRect(GetTransformedBounds(window4.get())));
413
414 root_windows[0]->bounds().Contains(
415 ToEnclosingRect(GetTransformedBounds(panel1.get())));
416 root_windows[0]->bounds().Contains(
417 ToEnclosingRect(GetTransformedBounds(panel2.get())));
418 root_windows[1]->bounds().Contains(
419 ToEnclosingRect(GetTransformedBounds(panel3.get())));
420 root_windows[1]->bounds().Contains(
421 ToEnclosingRect(GetTransformedBounds(panel4.get())));
422 EXPECT_TRUE(WindowsOverlapping(panel1.get(), panel2.get()));
423 EXPECT_TRUE(WindowsOverlapping(panel3.get(), panel4.get()));
424 EXPECT_FALSE(WindowsOverlapping(panel1.get(), panel3.get()));
286 } 425 }
287 426
288 } // namespace internal 427 } // namespace internal
289 } // namespace ash 428 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/overview/window_selector_panels.cc ('k') | ash/wm/overview/window_selector_window.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698