OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/event_dispatcher.h" | 5 #include "services/ui/ws/event_dispatcher.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
10 #include "base/time/time.h" | 10 #include "base/time/time.h" |
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 // Down going to up is handled by ProcessLocatedEvent(). | 458 // Down going to up is handled by ProcessLocatedEvent(). |
459 if (pointer_target.is_pointer_down) | 459 if (pointer_target.is_pointer_down) |
460 pointer_targets_[pointer_id].is_pointer_down = true; | 460 pointer_targets_[pointer_id].is_pointer_down = true; |
461 return; | 461 return; |
462 } | 462 } |
463 | 463 |
464 // The targets are changing. Send an exit if appropriate. | 464 // The targets are changing. Send an exit if appropriate. |
465 if (event.IsMousePointerEvent()) { | 465 if (event.IsMousePointerEvent()) { |
466 ui::PointerEvent exit_event( | 466 ui::PointerEvent exit_event( |
467 ui::ET_POINTER_EXITED, event.location(), event.root_location(), | 467 ui::ET_POINTER_EXITED, event.location(), event.root_location(), |
468 event.flags(), ui::PointerEvent::kMousePointerId, | 468 event.flags(), 0 /* changed_button_flags */, |
469 0 /* changed_button_flags */, | 469 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE, |
470 ui::PointerDetails(ui::EventPointerType::POINTER_TYPE_MOUSE), | 470 ui::PointerEvent::kMousePointerId), |
471 event.time_stamp()); | 471 event.time_stamp()); |
472 DispatchToPointerTarget(pointer_targets_[pointer_id], exit_event); | 472 DispatchToPointerTarget(pointer_targets_[pointer_id], exit_event); |
473 } | 473 } |
474 | 474 |
475 // Technically we're updating in place, but calling start then stop makes for | 475 // Technically we're updating in place, but calling start then stop makes for |
476 // simpler code. | 476 // simpler code. |
477 StopTrackingPointer(pointer_id); | 477 StopTrackingPointer(pointer_id); |
478 StartTrackingPointer(pointer_id, pointer_target); | 478 StartTrackingPointer(pointer_id, pointer_target); |
479 } | 479 } |
480 | 480 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
611 | 611 |
612 ui::EventType event_type = pair.second.is_mouse_event | 612 ui::EventType event_type = pair.second.is_mouse_event |
613 ? ui::ET_POINTER_EXITED | 613 ? ui::ET_POINTER_EXITED |
614 : ui::ET_POINTER_CANCELLED; | 614 : ui::ET_POINTER_CANCELLED; |
615 ui::EventPointerType pointer_type = | 615 ui::EventPointerType pointer_type = |
616 pair.second.is_mouse_event ? ui::EventPointerType::POINTER_TYPE_MOUSE | 616 pair.second.is_mouse_event ? ui::EventPointerType::POINTER_TYPE_MOUSE |
617 : ui::EventPointerType::POINTER_TYPE_TOUCH; | 617 : ui::EventPointerType::POINTER_TYPE_TOUCH; |
618 // TODO(jonross): Track previous location in PointerTarget for sending | 618 // TODO(jonross): Track previous location in PointerTarget for sending |
619 // cancels. | 619 // cancels. |
620 ui::PointerEvent event(event_type, gfx::Point(), gfx::Point(), ui::EF_NONE, | 620 ui::PointerEvent event(event_type, gfx::Point(), gfx::Point(), ui::EF_NONE, |
621 pair.first, 0 /* changed_button_flags */, | 621 0 /* changed_button_flags */, |
622 ui::PointerDetails(pointer_type), | 622 ui::PointerDetails(pointer_type, pair.first), |
623 ui::EventTimeForNow()); | 623 ui::EventTimeForNow()); |
624 DispatchToPointerTarget(pair.second, event); | 624 DispatchToPointerTarget(pair.second, event); |
625 } | 625 } |
626 pointer_targets_.clear(); | 626 pointer_targets_.clear(); |
627 } | 627 } |
628 | 628 |
629 void EventDispatcher::OnWillChangeWindowHierarchy(ServerWindow* window, | 629 void EventDispatcher::OnWillChangeWindowHierarchy(ServerWindow* window, |
630 ServerWindow* new_parent, | 630 ServerWindow* new_parent, |
631 ServerWindow* old_parent) { | 631 ServerWindow* old_parent) { |
632 // TODO(sky): moving to a different root likely needs to transfer capture. | 632 // TODO(sky): moving to a different root likely needs to transfer capture. |
(...skipping 20 matching lines...) Expand all Loading... |
653 if (mouse_cursor_source_window_ == window) | 653 if (mouse_cursor_source_window_ == window) |
654 SetMouseCursorSourceWindow(nullptr); | 654 SetMouseCursorSourceWindow(nullptr); |
655 } | 655 } |
656 | 656 |
657 void EventDispatcher::OnDragCursorUpdated() { | 657 void EventDispatcher::OnDragCursorUpdated() { |
658 delegate_->UpdateNativeCursorFromDispatcher(); | 658 delegate_->UpdateNativeCursorFromDispatcher(); |
659 } | 659 } |
660 | 660 |
661 } // namespace ws | 661 } // namespace ws |
662 } // namespace ui | 662 } // namespace ui |
OLD | NEW |