| 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/wm/workspace/workspace_window_resizer.h" | 5 #include "ash/wm/workspace/workspace_window_resizer.h" |
| 6 | 6 |
| 7 #include "ash/public/cpp/config.h" | 7 #include "ash/public/cpp/config.h" |
| 8 #include "ash/public/cpp/shell_window_ids.h" | 8 #include "ash/public/cpp/shell_window_ids.h" |
| 9 #include "ash/screen_util.h" | 9 #include "ash/screen_util.h" |
| 10 #include "ash/shelf/shelf_constants.h" | 10 #include "ash/shelf/shelf_constants.h" |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 } | 129 } |
| 130 } | 130 } |
| 131 return result; | 131 return result; |
| 132 } | 132 } |
| 133 | 133 |
| 134 protected: | 134 protected: |
| 135 WindowResizer* CreateResizerForTest(aura::Window* window, | 135 WindowResizer* CreateResizerForTest(aura::Window* window, |
| 136 const gfx::Point& point_in_parent, | 136 const gfx::Point& point_in_parent, |
| 137 int window_component) { | 137 int window_component) { |
| 138 WindowResizer* resizer = | 138 WindowResizer* resizer = |
| 139 CreateWindowResizer(WmWindow::Get(window), point_in_parent, | 139 CreateWindowResizer(window, point_in_parent, window_component, |
| 140 window_component, | |
| 141 aura::client::WINDOW_MOVE_SOURCE_MOUSE) | 140 aura::client::WINDOW_MOVE_SOURCE_MOUSE) |
| 142 .release(); | 141 .release(); |
| 143 workspace_resizer_ = WorkspaceWindowResizer::GetInstanceForTest(); | 142 workspace_resizer_ = WorkspaceWindowResizer::GetInstanceForTest(); |
| 144 return resizer; | 143 return resizer; |
| 145 } | 144 } |
| 146 WorkspaceWindowResizer* CreateWorkspaceResizerForTest( | 145 WorkspaceWindowResizer* CreateWorkspaceResizerForTest( |
| 147 aura::Window* window, | 146 aura::Window* window, |
| 148 const gfx::Point& point_in_parent, | 147 const gfx::Point& point_in_parent, |
| 149 int window_component, | 148 int window_component, |
| 150 aura::client::WindowMoveSource source, | 149 aura::client::WindowMoveSource source, |
| 151 const std::vector<aura::Window*>& attached_windows) { | 150 const std::vector<aura::Window*>& attached_windows) { |
| 152 wm::WindowState* window_state = wm::GetWindowState(window); | 151 wm::WindowState* window_state = wm::GetWindowState(window); |
| 153 window_state->CreateDragDetails(point_in_parent, window_component, source); | 152 window_state->CreateDragDetails(point_in_parent, window_component, source); |
| 154 return WorkspaceWindowResizer::Create( | 153 return WorkspaceWindowResizer::Create(window_state, attached_windows); |
| 155 window_state, WmWindow::FromAuraWindows(attached_windows)); | |
| 156 } | 154 } |
| 157 | 155 |
| 158 PhantomWindowController* snap_phantom_window_controller() const { | 156 PhantomWindowController* snap_phantom_window_controller() const { |
| 159 return workspace_resizer_->snap_phantom_window_controller_.get(); | 157 return workspace_resizer_->snap_phantom_window_controller_.get(); |
| 160 } | 158 } |
| 161 | 159 |
| 162 gfx::Point CalculateDragPoint(const WindowResizer& resizer, | 160 gfx::Point CalculateDragPoint(const WindowResizer& resizer, |
| 163 int delta_x, | 161 int delta_x, |
| 164 int delta_y) const { | 162 int delta_y) const { |
| 165 gfx::Point location = resizer.GetInitialLocation(); | 163 gfx::Point location = resizer.GetInitialLocation(); |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 // TODO(varkha): Insets are reset after every drag because of | 540 // TODO(varkha): Insets are reset after every drag because of |
| 543 // http://crbug.com/292238. | 541 // http://crbug.com/292238. |
| 544 window_->SetBounds(gfx::Rect(20, 30, 400, 60)); | 542 window_->SetBounds(gfx::Rect(20, 30, 400, 60)); |
| 545 window_->SetProperty(aura::client::kResizeBehaviorKey, | 543 window_->SetProperty(aura::client::kResizeBehaviorKey, |
| 546 ui::mojom::kResizeBehaviorCanResize | | 544 ui::mojom::kResizeBehaviorCanResize | |
| 547 ui::mojom::kResizeBehaviorCanMaximize); | 545 ui::mojom::kResizeBehaviorCanMaximize); |
| 548 wm::WindowState* window_state = wm::GetWindowState(window_.get()); | 546 wm::WindowState* window_state = wm::GetWindowState(window_.get()); |
| 549 | 547 |
| 550 { | 548 { |
| 551 gfx::Rect expected_bounds_in_parent( | 549 gfx::Rect expected_bounds_in_parent( |
| 552 wm::GetDefaultLeftSnappedWindowBoundsInParent( | 550 wm::GetDefaultLeftSnappedWindowBoundsInParent(window_.get())); |
| 553 WmWindow::Get(window_.get()))); | |
| 554 | 551 |
| 555 std::unique_ptr<WindowResizer> resizer( | 552 std::unique_ptr<WindowResizer> resizer( |
| 556 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); | 553 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); |
| 557 ASSERT_TRUE(resizer.get()); | 554 ASSERT_TRUE(resizer.get()); |
| 558 resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0); | 555 resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0); |
| 559 resizer->CompleteDrag(); | 556 resizer->CompleteDrag(); |
| 560 | 557 |
| 561 EXPECT_EQ(expected_bounds_in_parent.ToString(), | 558 EXPECT_EQ(expected_bounds_in_parent.ToString(), |
| 562 window_->bounds().ToString()); | 559 window_->bounds().ToString()); |
| 563 ASSERT_TRUE(window_state->HasRestoreBounds()); | 560 ASSERT_TRUE(window_state->HasRestoreBounds()); |
| 564 EXPECT_EQ("20,30 400x60", | 561 EXPECT_EQ("20,30 400x60", |
| 565 window_state->GetRestoreBoundsInScreen().ToString()); | 562 window_state->GetRestoreBoundsInScreen().ToString()); |
| 566 } | 563 } |
| 567 // Try the same with the right side. | 564 // Try the same with the right side. |
| 568 { | 565 { |
| 569 gfx::Rect expected_bounds_in_parent( | 566 gfx::Rect expected_bounds_in_parent( |
| 570 wm::GetDefaultRightSnappedWindowBoundsInParent( | 567 wm::GetDefaultRightSnappedWindowBoundsInParent(window_.get())); |
| 571 WmWindow::Get(window_.get()))); | |
| 572 | 568 |
| 573 std::unique_ptr<WindowResizer> resizer( | 569 std::unique_ptr<WindowResizer> resizer( |
| 574 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); | 570 CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION)); |
| 575 ASSERT_TRUE(resizer.get()); | 571 ASSERT_TRUE(resizer.get()); |
| 576 resizer->Drag(CalculateDragPoint(*resizer, 800, 10), 0); | 572 resizer->Drag(CalculateDragPoint(*resizer, 800, 10), 0); |
| 577 resizer->CompleteDrag(); | 573 resizer->CompleteDrag(); |
| 578 EXPECT_EQ(expected_bounds_in_parent.ToString(), | 574 EXPECT_EQ(expected_bounds_in_parent.ToString(), |
| 579 window_->bounds().ToString()); | 575 window_->bounds().ToString()); |
| 580 ASSERT_TRUE(window_state->HasRestoreBounds()); | 576 ASSERT_TRUE(window_state->HasRestoreBounds()); |
| 581 EXPECT_EQ("20,30 400x60", | 577 EXPECT_EQ("20,30 400x60", |
| (...skipping 1272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1854 touch_resize_window_->bounds().ToString()); | 1850 touch_resize_window_->bounds().ToString()); |
| 1855 // Drag even more to snap to the edge. | 1851 // Drag even more to snap to the edge. |
| 1856 generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 40), | 1852 generator.GestureScrollSequence(gfx::Point(400, kRootHeight - 40), |
| 1857 gfx::Point(400, kRootHeight - 25), | 1853 gfx::Point(400, kRootHeight - 25), |
| 1858 base::TimeDelta::FromMilliseconds(10), 5); | 1854 base::TimeDelta::FromMilliseconds(10), 5); |
| 1859 EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 100).ToString(), | 1855 EXPECT_EQ(gfx::Rect(100, 100, 600, kRootHeight - 100).ToString(), |
| 1860 touch_resize_window_->bounds().ToString()); | 1856 touch_resize_window_->bounds().ToString()); |
| 1861 } | 1857 } |
| 1862 | 1858 |
| 1863 } // namespace ash | 1859 } // namespace ash |
| OLD | NEW |