| 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_window_resizer.h" | 5 #include "ash/common/wm/workspace/workspace_window_resizer.h" |
| 6 | 6 |
| 7 #include "ash/common/ash_switches.h" | |
| 8 #include "ash/common/shelf/shelf_constants.h" | 7 #include "ash/common/shelf/shelf_constants.h" |
| 9 #include "ash/common/shelf/wm_shelf.h" | 8 #include "ash/common/shelf/wm_shelf.h" |
| 10 #include "ash/common/wm/window_positioning_utils.h" | 9 #include "ash/common/wm/window_positioning_utils.h" |
| 11 #include "ash/common/wm/window_state.h" | 10 #include "ash/common/wm/window_state.h" |
| 12 #include "ash/common/wm/wm_event.h" | 11 #include "ash/common/wm/wm_event.h" |
| 13 #include "ash/common/wm/workspace/phantom_window_controller.h" | 12 #include "ash/common/wm/workspace/phantom_window_controller.h" |
| 14 #include "ash/common/wm/workspace_controller.h" | 13 #include "ash/common/wm/workspace_controller.h" |
| 15 #include "ash/common/wm_window.h" | 14 #include "ash/common/wm_window.h" |
| 16 #include "ash/public/cpp/shell_window_ids.h" | 15 #include "ash/public/cpp/shell_window_ids.h" |
| 17 #include "ash/screen_util.h" | 16 #include "ash/screen_util.h" |
| (...skipping 1458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1476 EXPECT_EQ(401, window_->bounds().width()); | 1475 EXPECT_EQ(401, window_->bounds().width()); |
| 1477 EXPECT_EQ(302, window_->bounds().height()); | 1476 EXPECT_EQ(302, window_->bounds().height()); |
| 1478 } | 1477 } |
| 1479 | 1478 |
| 1480 // Test that a window with a specified max size can't be snapped. | 1479 // Test that a window with a specified max size can't be snapped. |
| 1481 TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) { | 1480 TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) { |
| 1482 // Make the window snappable by making it resizable and maximizable. | 1481 // Make the window snappable by making it resizable and maximizable. |
| 1483 window_->SetProperty(aura::client::kResizeBehaviorKey, | 1482 window_->SetProperty(aura::client::kResizeBehaviorKey, |
| 1484 ui::mojom::kResizeBehaviorCanResize | | 1483 ui::mojom::kResizeBehaviorCanResize | |
| 1485 ui::mojom::kResizeBehaviorCanMaximize); | 1484 ui::mojom::kResizeBehaviorCanMaximize); |
| 1486 | |
| 1487 // Enable docking for this test. | |
| 1488 base::CommandLine::ForCurrentProcess()->AppendSwitch( | |
| 1489 ash::switches::kAshEnableDockedWindows); | |
| 1490 | |
| 1491 { | 1485 { |
| 1492 // With max size not set we get a phantom window controller for dragging off | 1486 // With max size not set we get a phantom window controller for dragging off |
| 1493 // the right hand side. | 1487 // the right hand side. |
| 1494 // Make the window wider than maximum docked width. | 1488 // Make the window wider than maximum docked width. |
| 1495 window_->SetBounds(gfx::Rect(0, 0, 400, 200)); | 1489 window_->SetBounds(gfx::Rect(0, 0, 400, 200)); |
| 1496 | 1490 |
| 1497 std::unique_ptr<WindowResizer> resizer( | 1491 std::unique_ptr<WindowResizer> resizer( |
| 1498 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); | 1492 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); |
| 1499 EXPECT_FALSE(snap_phantom_window_controller()); | 1493 EXPECT_FALSE(snap_phantom_window_controller()); |
| 1500 resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0); | 1494 resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0); |
| 1501 EXPECT_TRUE(snap_phantom_window_controller()); | 1495 EXPECT_TRUE(snap_phantom_window_controller()); |
| 1502 resizer->RevertDrag(); | 1496 resizer->RevertDrag(); |
| 1503 } | 1497 } |
| 1504 { | 1498 { |
| 1505 // With max size defined, we get no phantom window for snapping but we still | 1499 // With max size defined, we get no phantom window for snapping. |
| 1506 // get a phantom window (docking guide). | |
| 1507 window_->SetBounds(gfx::Rect(0, 0, 400, 200)); | 1500 window_->SetBounds(gfx::Rect(0, 0, 400, 200)); |
| 1508 delegate_.set_max_size(gfx::Size(400, 200)); | 1501 delegate_.set_max_size(gfx::Size(400, 200)); |
| 1509 | 1502 |
| 1510 std::unique_ptr<WindowResizer> resizer( | 1503 std::unique_ptr<WindowResizer> resizer( |
| 1511 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); | 1504 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); |
| 1512 resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0); | 1505 resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0); |
| 1513 EXPECT_TRUE(snap_phantom_window_controller()); | 1506 EXPECT_FALSE(snap_phantom_window_controller()); |
| 1514 resizer->RevertDrag(); | 1507 resizer->RevertDrag(); |
| 1515 } | 1508 } |
| 1516 { | 1509 { |
| 1517 // With max size defined, we get no phantom window for snapping. | 1510 // With max size defined, we get no phantom window for snapping. |
| 1518 window_->SetBounds(gfx::Rect(0, 0, 400, 200)); | 1511 window_->SetBounds(gfx::Rect(0, 0, 400, 200)); |
| 1519 delegate_.set_max_size(gfx::Size(400, 200)); | 1512 delegate_.set_max_size(gfx::Size(400, 200)); |
| 1520 // With min size defined, we get no phantom window for docking. | 1513 // With min size defined, we get no phantom window for docking. |
| 1521 delegate_.set_min_size(gfx::Size(400, 200)); | 1514 delegate_.set_min_size(gfx::Size(400, 200)); |
| 1522 | 1515 |
| 1523 std::unique_ptr<WindowResizer> resizer( | 1516 std::unique_ptr<WindowResizer> resizer( |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1868 touch_resize_window_->bounds().ToString()); | 1861 touch_resize_window_->bounds().ToString()); |
| 1869 // Drag even more to snap to the edge. | 1862 // Drag even more to snap to the edge. |
| 1870 generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 40), | 1863 generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 40), |
| 1871 gfx::Point(400, kRootHeight - 25), | 1864 gfx::Point(400, kRootHeight - 25), |
| 1872 base::TimeDelta::FromMilliseconds(10), 5); | 1865 base::TimeDelta::FromMilliseconds(10), 5); |
| 1873 EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 100).ToString(), | 1866 EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 100).ToString(), |
| 1874 touch_resize_window_->bounds().ToString()); | 1867 touch_resize_window_->bounds().ToString()); |
| 1875 } | 1868 } |
| 1876 | 1869 |
| 1877 } // namespace ash | 1870 } // namespace ash |
| OLD | NEW |