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/display/display_controller.h" | 5 #include "ash/display/display_controller.h" |
6 #include "ash/display/multi_display_manager.h" | 6 #include "ash/display/multi_display_manager.h" |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/test/ash_test_base.h" | 8 #include "ash/test/ash_test_base.h" |
9 #include "ash/wm/coordinate_conversion.h" | 9 #include "ash/wm/coordinate_conversion.h" |
10 #include "ash/wm/property_util.h" | 10 #include "ash/wm/property_util.h" |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 EXPECT_EQ(root_windows[1], d1->GetNativeView()->GetRootWindow()); | 394 EXPECT_EQ(root_windows[1], d1->GetNativeView()->GetRootWindow()); |
395 EXPECT_EQ("1560,30 100x100", | 395 EXPECT_EQ("1560,30 100x100", |
396 d1->GetWindowBoundsInScreen().ToString()); | 396 d1->GetWindowBoundsInScreen().ToString()); |
397 | 397 |
398 // Setting outside of root windows will be moved to primary root window. | 398 // Setting outside of root windows will be moved to primary root window. |
399 // TODO(oshima): This one probably should pick the closest root window. | 399 // TODO(oshima): This one probably should pick the closest root window. |
400 d1->SetBounds(gfx::Rect(200, 10, 100, 100)); | 400 d1->SetBounds(gfx::Rect(200, 10, 100, 100)); |
401 EXPECT_EQ(root_windows[0], d1->GetNativeView()->GetRootWindow()); | 401 EXPECT_EQ(root_windows[0], d1->GetNativeView()->GetRootWindow()); |
402 } | 402 } |
403 | 403 |
| 404 TEST_F(ExtendedDesktopTest, MoveWindowToDisplay) { |
| 405 UpdateDisplay("1000x1000,1000x1000"); |
| 406 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
| 407 |
| 408 gfx::Display display0 = |
| 409 gfx::Screen::GetDisplayMatching(root_windows[0]->GetBoundsInScreen()); |
| 410 gfx::Display display1 = |
| 411 gfx::Screen::GetDisplayMatching(root_windows[1]->GetBoundsInScreen()); |
| 412 EXPECT_NE(display0.id(), display1.id()); |
| 413 |
| 414 views::Widget* d1 = CreateTestWidget(gfx::Rect(10, 10, 1000, 100)); |
| 415 EXPECT_EQ(root_windows[0], d1->GetNativeView()->GetRootWindow()); |
| 416 |
| 417 // Move the window where the window spans both root windows. Since the second |
| 418 // parameter is |display1|, the window should be shown on the secondary root. |
| 419 d1->GetNativeWindow()->SetBoundsInScreen(gfx::Rect(500, 10, 1000, 100), |
| 420 display1); |
| 421 EXPECT_EQ("500,10 1000x100", |
| 422 d1->GetWindowBoundsInScreen().ToString()); |
| 423 EXPECT_EQ(root_windows[1], d1->GetNativeView()->GetRootWindow()); |
| 424 |
| 425 // Move to the primary root. |
| 426 d1->GetNativeWindow()->SetBoundsInScreen(gfx::Rect(500, 10, 1000, 100), |
| 427 display0); |
| 428 EXPECT_EQ("500,10 1000x100", |
| 429 d1->GetWindowBoundsInScreen().ToString()); |
| 430 EXPECT_EQ(root_windows[0], d1->GetNativeView()->GetRootWindow()); |
| 431 } |
| 432 |
404 TEST_F(ExtendedDesktopTest, MoveWindowWithTransient) { | 433 TEST_F(ExtendedDesktopTest, MoveWindowWithTransient) { |
405 UpdateDisplay("1000x600,600x400"); | 434 UpdateDisplay("1000x600,600x400"); |
406 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); | 435 Shell::RootWindowList root_windows = Shell::GetAllRootWindows(); |
407 views::Widget* w1 = CreateTestWidget(gfx::Rect(10, 10, 100, 100)); | 436 views::Widget* w1 = CreateTestWidget(gfx::Rect(10, 10, 100, 100)); |
408 views::Widget* w1_t1 = CreateTestWidgetWithParent( | 437 views::Widget* w1_t1 = CreateTestWidgetWithParent( |
409 w1, gfx::Rect(50, 50, 50, 50), false /* transient */); | 438 w1, gfx::Rect(50, 50, 50, 50), false /* transient */); |
410 // Transient child of the transient child. | 439 // Transient child of the transient child. |
411 views::Widget* w1_t11 = CreateTestWidgetWithParent( | 440 views::Widget* w1_t11 = CreateTestWidgetWithParent( |
412 w1_t1, gfx::Rect(1200, 70, 30, 30), false /* transient */); | 441 w1_t1, gfx::Rect(1200, 70, 30, 30), false /* transient */); |
413 | 442 |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 p.SetPoint(0, 0); | 540 p.SetPoint(0, 0); |
512 aura::Window::ConvertPointToTarget(root_windows[0], root_windows[1], &p); | 541 aura::Window::ConvertPointToTarget(root_windows[0], root_windows[1], &p); |
513 EXPECT_EQ("0,-600", p.ToString()); | 542 EXPECT_EQ("0,-600", p.ToString()); |
514 p.SetPoint(0, 0); | 543 p.SetPoint(0, 0); |
515 aura::Window::ConvertPointToTarget(d1, d2, &p); | 544 aura::Window::ConvertPointToTarget(d1, d2, &p); |
516 EXPECT_EQ("-10,-610", p.ToString()); | 545 EXPECT_EQ("-10,-610", p.ToString()); |
517 } | 546 } |
518 | 547 |
519 } // namespace internal | 548 } // namespace internal |
520 } // namespace ash | 549 } // namespace ash |
OLD | NEW |