| OLD | NEW | 
|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "services/ui/ws/window_manager_state.h" | 5 #include "services/ui/ws/window_manager_state.h" | 
| 6 | 6 | 
| 7 #include <memory> | 7 #include <memory> | 
| 8 | 8 | 
| 9 #include "base/macros.h" | 9 #include "base/macros.h" | 
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" | 
| (...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 377 // then try to send any queued events. | 377 // then try to send any queued events. | 
| 378 TEST_F(WindowManagerStateTest, DontSendQueuedEventsToADeadTree) { | 378 TEST_F(WindowManagerStateTest, DontSendQueuedEventsToADeadTree) { | 
| 379   ServerWindow* target = window(); | 379   ServerWindow* target = window(); | 
| 380   TestChangeTracker* tracker = window_tree_client()->tracker(); | 380   TestChangeTracker* tracker = window_tree_client()->tracker(); | 
| 381 | 381 | 
| 382   ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(5, 5), gfx::Point(5, 5), | 382   ui::MouseEvent press(ui::ET_MOUSE_PRESSED, gfx::Point(5, 5), gfx::Point(5, 5), | 
| 383                        base::TimeTicks(), EF_LEFT_MOUSE_BUTTON, | 383                        base::TimeTicks(), EF_LEFT_MOUSE_BUTTON, | 
| 384                        EF_LEFT_MOUSE_BUTTON); | 384                        EF_LEFT_MOUSE_BUTTON); | 
| 385   DispatchInputEventToWindow(target, press, nullptr); | 385   DispatchInputEventToWindow(target, press, nullptr); | 
| 386   ASSERT_EQ(1u, tracker->changes()->size()); | 386   ASSERT_EQ(1u, tracker->changes()->size()); | 
| 387   EXPECT_EQ("InputEvent window=1,1 event_action=1", | 387   EXPECT_EQ("InputEvent window=1,1 event_action=1 event_root_location=5,5", | 
| 388             ChangesToDescription1(*tracker->changes())[0]); | 388             ChangesToDescription1(*tracker->changes())[0]); | 
| 389   tracker->changes()->clear(); | 389   tracker->changes()->clear(); | 
| 390   // The above is not setting TreeAwaitingInputAck. | 390   // The above is not setting TreeAwaitingInputAck. | 
| 391 | 391 | 
| 392   // Queue the key release event; it should not be immediately dispatched | 392   // Queue the key release event; it should not be immediately dispatched | 
| 393   // because there's no ACK for the last one. | 393   // because there's no ACK for the last one. | 
| 394   ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(5, 5), | 394   ui::MouseEvent release(ui::ET_MOUSE_RELEASED, gfx::Point(5, 5), | 
| 395                          gfx::Point(5, 5), base::TimeTicks(), | 395                          gfx::Point(5, 5), base::TimeTicks(), | 
| 396                          EF_LEFT_MOUSE_BUTTON, EF_LEFT_MOUSE_BUTTON); | 396                          EF_LEFT_MOUSE_BUTTON, EF_LEFT_MOUSE_BUTTON); | 
| 397   DispatchInputEventToWindow(target, release, nullptr); | 397   DispatchInputEventToWindow(target, release, nullptr); | 
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 580   ui::PointerEvent move( | 580   ui::PointerEvent move( | 
| 581       ui::ET_POINTER_MOVED, gfx::Point(25, 25), gfx::Point(25, 25), 0, 0, 0, | 581       ui::ET_POINTER_MOVED, gfx::Point(25, 25), gfx::Point(25, 25), 0, 0, 0, | 
| 582       ui::PointerDetails(EventPointerType::POINTER_TYPE_MOUSE), | 582       ui::PointerDetails(EventPointerType::POINTER_TYPE_MOUSE), | 
| 583       base::TimeTicks()); | 583       base::TimeTicks()); | 
| 584   window_manager_state()->ProcessEvent(move, 0); | 584   window_manager_state()->ProcessEvent(move, 0); | 
| 585   // The event isn't over a valid target, which should trigger resetting the | 585   // The event isn't over a valid target, which should trigger resetting the | 
| 586   // cursor to POINTER. | 586   // cursor to POINTER. | 
| 587   EXPECT_EQ(ui::mojom::Cursor::POINTER, display_test_api.last_cursor()); | 587   EXPECT_EQ(ui::mojom::Cursor::POINTER, display_test_api.last_cursor()); | 
| 588 } | 588 } | 
| 589 | 589 | 
|  | 590 TEST_F(WindowManagerStateTest, RootLocationCoordinateConversion) { | 
|  | 591   TestWindowTreeClient* embed_connection = nullptr; | 
|  | 592   WindowTree* target_tree = nullptr; | 
|  | 593   ServerWindow* target = nullptr; | 
|  | 594   window()->SetBounds(gfx::Rect(10, 10, 100, 100)); | 
|  | 595   CreateSecondaryTree(&embed_connection, &target_tree, &target); | 
|  | 596   TestWindowManager target_window_manager; | 
|  | 597   WindowTreeTestApi(target_tree) | 
|  | 598       .set_window_manager_internal(&target_window_manager); | 
|  | 599 | 
|  | 600   const gfx::Point event_location(40, 50); | 
|  | 601   const gfx::Point event_root_location(30, 40); | 
|  | 602   ui::MouseEvent mouse(ui::ET_MOUSE_MOVED, event_location, event_root_location, | 
|  | 603                        base::TimeTicks(), 0, 0); | 
|  | 604   std::unique_ptr<Accelerator> accelerator = CreateAccelerator(); | 
|  | 605   DispatchInputEventToWindow(target, mouse, accelerator.get()); | 
|  | 606   TestChangeTracker* tracker = embed_connection->tracker(); | 
|  | 607   ASSERT_EQ(1u, tracker->changes()->size()); | 
|  | 608   EXPECT_EQ("InputEvent window=2,1 event_action=4 event_root_location=20,30", | 
|  | 609             ChangesToDescription1(*tracker->changes())[0]); | 
|  | 610   EXPECT_TRUE(wm_client()->tracker()->changes()->empty()); | 
|  | 611 } | 
|  | 612 | 
| 590 }  // namespace test | 613 }  // namespace test | 
| 591 }  // namespace ws | 614 }  // namespace ws | 
| 592 }  // namespace ui | 615 }  // namespace ui | 
| OLD | NEW | 
|---|