| 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/system_gesture_event_filter.h" | 5 #include "ash/wm/system_gesture_event_filter.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "ash/accelerators/accelerator_controller.h" | 9 #include "ash/accelerators/accelerator_controller.h" |
| 10 #include "ash/display/display_manager.h" | 10 #include "ash/display/display_manager.h" |
| (...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 const int kSteps = 15; | 470 const int kSteps = 15; |
| 471 const int kTouchPoints = 2; | 471 const int kTouchPoints = 2; |
| 472 gfx::Point points[kTouchPoints] = { | 472 gfx::Point points[kTouchPoints] = { |
| 473 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), | 473 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), |
| 474 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), | 474 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), |
| 475 }; | 475 }; |
| 476 aura::Window* toplevel_window = toplevel->GetNativeWindow(); | 476 aura::Window* toplevel_window = toplevel->GetNativeWindow(); |
| 477 ui::test::EventGenerator generator(root_window, toplevel_window); | 477 ui::test::EventGenerator generator(root_window, toplevel_window); |
| 478 | 478 |
| 479 // Check that dragging left snaps before reaching the screen edge. | 479 // Check that dragging left snaps before reaching the screen edge. |
| 480 gfx::Rect work_area = | 480 gfx::Rect work_area = gfx::Screen::GetScreen() |
| 481 Shell::GetScreen()->GetDisplayNearestWindow(root_window).work_area(); | 481 ->GetDisplayNearestWindow(root_window) |
| 482 .work_area(); |
| 482 int drag_x = work_area.x() + 20 - points[0].x(); | 483 int drag_x = work_area.x() + 20 - points[0].x(); |
| 483 generator.GestureMultiFingerScroll( | 484 generator.GestureMultiFingerScroll( |
| 484 kTouchPoints, points, 120, kSteps, drag_x, 0); | 485 kTouchPoints, points, 120, kSteps, drag_x, 0); |
| 485 | 486 |
| 486 EXPECT_EQ(wm::GetDefaultLeftSnappedWindowBoundsInParent( | 487 EXPECT_EQ(wm::GetDefaultLeftSnappedWindowBoundsInParent( |
| 487 toplevel_window).ToString(), | 488 toplevel_window).ToString(), |
| 488 toplevel_window->bounds().ToString()); | 489 toplevel_window->bounds().ToString()); |
| 489 } | 490 } |
| 490 | 491 |
| 491 TEST_F(SystemGestureEventFilterTest, DragRightNearEdgeSnaps) { | 492 TEST_F(SystemGestureEventFilterTest, DragRightNearEdgeSnaps) { |
| 492 gfx::Rect bounds(200, 150, 400, 100); | 493 gfx::Rect bounds(200, 150, 400, 100); |
| 493 aura::Window* root_window = Shell::GetPrimaryRootWindow(); | 494 aura::Window* root_window = Shell::GetPrimaryRootWindow(); |
| 494 views::Widget* toplevel = views::Widget::CreateWindowWithContextAndBounds( | 495 views::Widget* toplevel = views::Widget::CreateWindowWithContextAndBounds( |
| 495 new ResizableWidgetDelegate, root_window, bounds); | 496 new ResizableWidgetDelegate, root_window, bounds); |
| 496 toplevel->Show(); | 497 toplevel->Show(); |
| 497 | 498 |
| 498 const int kSteps = 15; | 499 const int kSteps = 15; |
| 499 const int kTouchPoints = 2; | 500 const int kTouchPoints = 2; |
| 500 gfx::Point points[kTouchPoints] = { | 501 gfx::Point points[kTouchPoints] = { |
| 501 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), | 502 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), |
| 502 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), | 503 gfx::Point(bounds.x() + bounds.width() / 2, bounds.y() + 5), |
| 503 }; | 504 }; |
| 504 aura::Window* toplevel_window = toplevel->GetNativeWindow(); | 505 aura::Window* toplevel_window = toplevel->GetNativeWindow(); |
| 505 ui::test::EventGenerator generator(root_window, toplevel_window); | 506 ui::test::EventGenerator generator(root_window, toplevel_window); |
| 506 | 507 |
| 507 // Check that dragging right snaps before reaching the screen edge. | 508 // Check that dragging right snaps before reaching the screen edge. |
| 508 gfx::Rect work_area = | 509 gfx::Rect work_area = gfx::Screen::GetScreen() |
| 509 Shell::GetScreen()->GetDisplayNearestWindow(root_window).work_area(); | 510 ->GetDisplayNearestWindow(root_window) |
| 511 .work_area(); |
| 510 int drag_x = work_area.right() - 20 - points[0].x(); | 512 int drag_x = work_area.right() - 20 - points[0].x(); |
| 511 generator.GestureMultiFingerScroll( | 513 generator.GestureMultiFingerScroll( |
| 512 kTouchPoints, points, 120, kSteps, drag_x, 0); | 514 kTouchPoints, points, 120, kSteps, drag_x, 0); |
| 513 EXPECT_EQ(wm::GetDefaultRightSnappedWindowBoundsInParent( | 515 EXPECT_EQ(wm::GetDefaultRightSnappedWindowBoundsInParent( |
| 514 toplevel_window).ToString(), | 516 toplevel_window).ToString(), |
| 515 toplevel_window->bounds().ToString()); | 517 toplevel_window->bounds().ToString()); |
| 516 } | 518 } |
| 517 | 519 |
| 518 // Tests that the window manager does not consume gesture events targeted to | 520 // Tests that the window manager does not consume gesture events targeted to |
| 519 // windows of type WINDOW_TYPE_CONTROL. This is important because the web | 521 // windows of type WINDOW_TYPE_CONTROL. This is important because the web |
| (...skipping 21 matching lines...) Expand all Loading... |
| 541 for (int i = 1; i <= 3; ++i) | 543 for (int i = 1; i <= 3; ++i) |
| 542 GetEventGenerator().ReleaseTouchId(i); | 544 GetEventGenerator().ReleaseTouchId(i); |
| 543 EXPECT_EQ(event_handler.num_gesture_events(), | 545 EXPECT_EQ(event_handler.num_gesture_events(), |
| 544 delegate.GetGestureCountAndReset()); | 546 delegate.GetGestureCountAndReset()); |
| 545 | 547 |
| 546 aura::Env::GetInstance()->RemovePreTargetHandler(&event_handler); | 548 aura::Env::GetInstance()->RemovePreTargetHandler(&event_handler); |
| 547 } | 549 } |
| 548 | 550 |
| 549 } // namespace test | 551 } // namespace test |
| 550 } // namespace ash | 552 } // namespace ash |
| OLD | NEW |