| 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 "components/mus/gesture_manager.h" | 5 #include "components/mus/gesture_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "components/mus/gesture_manager_delegate.h" | 9 #include "components/mus/gesture_manager_delegate.h" |
| 10 #include "components/mus/public/cpp/keys.h" | 10 #include "components/mus/public/cpp/keys.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 // TODO(sky): I'm doing this until things are converted. Seems as though we | 48 // TODO(sky): I'm doing this until things are converted. Seems as though we |
| 49 // shouldn't do this long term. | 49 // shouldn't do this long term. |
| 50 if (result.empty()) | 50 if (result.empty()) |
| 51 result.push_back(deepest); | 51 result.push_back(deepest); |
| 52 return result; | 52 return result; |
| 53 } | 53 } |
| 54 | 54 |
| 55 mojo::EventPtr CloneEventForView(const mojo::Event& event, | 55 mojo::EventPtr CloneEventForView(const mojo::Event& event, |
| 56 const ServerView* view) { | 56 const ServerView* view) { |
| 57 mojo::EventPtr result(event.Clone()); | 57 mojo::EventPtr result(event.Clone()); |
| 58 const gfx::PointF location(event.pointer_data->location->x, | 58 if (event.pointer_data && event.pointer_data->location) { |
| 59 event.pointer_data->location->y); | 59 const gfx::PointF location(event.pointer_data->location->x, |
| 60 const gfx::PointF target_location( | 60 event.pointer_data->location->y); |
| 61 ConvertPointFBetweenViews(view->GetRoot(), view, location)); | 61 const gfx::PointF target_location( |
| 62 result->pointer_data->location->x = target_location.x(); | 62 ConvertPointFBetweenViews(view->GetRoot(), view, location)); |
| 63 result->pointer_data->location->y = target_location.y(); | 63 result->pointer_data->location->x = target_location.x(); |
| 64 result->pointer_data->location->y = target_location.y(); |
| 65 } |
| 64 return result.Pass(); | 66 return result.Pass(); |
| 65 } | 67 } |
| 66 | 68 |
| 67 } // namespace | 69 } // namespace |
| 68 | 70 |
| 69 // GestureStateChange ---------------------------------------------------------- | 71 // GestureStateChange ---------------------------------------------------------- |
| 70 | 72 |
| 71 GestureStateChange::GestureStateChange() | 73 GestureStateChange::GestureStateChange() |
| 72 : chosen_gesture(GestureManager::kInvalidGestureId) {} | 74 : chosen_gesture(GestureManager::kInvalidGestureId) {} |
| 73 | 75 |
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 528 const ServerView* root) | 530 const ServerView* root) |
| 529 : delegate_(delegate), root_view_(root) {} | 531 : delegate_(delegate), root_view_(root) {} |
| 530 | 532 |
| 531 GestureManager::~GestureManager() { | 533 GestureManager::~GestureManager() { |
| 532 // Explicitly delete the pointers first as this may result in calling back to | 534 // Explicitly delete the pointers first as this may result in calling back to |
| 533 // us to cleanup and delete gestures. | 535 // us to cleanup and delete gestures. |
| 534 active_pointers_.clear(); | 536 active_pointers_.clear(); |
| 535 } | 537 } |
| 536 | 538 |
| 537 bool GestureManager::ProcessEvent(const mojo::Event& event) { | 539 bool GestureManager::ProcessEvent(const mojo::Event& event) { |
| 538 if (!event.pointer_data) | 540 if (!event.pointer_data || !event.pointer_data->location) |
| 539 return false; | 541 return false; |
| 540 | 542 |
| 541 ScheduledDeleteProcessor delete_processor(this); | 543 ScheduledDeleteProcessor delete_processor(this); |
| 542 const gfx::Point location(static_cast<int>(event.pointer_data->location->x), | 544 const gfx::Point location(static_cast<int>(event.pointer_data->location->x), |
| 543 static_cast<int>(event.pointer_data->location->y)); | 545 static_cast<int>(event.pointer_data->location->y)); |
| 544 switch (event.action) { | 546 switch (event.action) { |
| 545 case mojo::EVENT_TYPE_POINTER_DOWN: { | 547 case mojo::EVENT_TYPE_POINTER_DOWN: { |
| 546 if (GetPointerById(event.pointer_data->pointer_id)) { | 548 if (GetPointerById(event.pointer_data->pointer_id)) { |
| 547 DVLOG(1) << "received more than one down for a pointer without a " | 549 DVLOG(1) << "received more than one down for a pointer without a " |
| 548 << "corresponding up, id=" << event.pointer_data->pointer_id; | 550 << "corresponding up, id=" << event.pointer_data->pointer_id; |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 void GestureManager::ScheduleDelete(Pointer* pointer) { | 689 void GestureManager::ScheduleDelete(Pointer* pointer) { |
| 688 auto iter = | 690 auto iter = |
| 689 std::find(active_pointers_.begin(), active_pointers_.end(), pointer); | 691 std::find(active_pointers_.begin(), active_pointers_.end(), pointer); |
| 690 if (iter != active_pointers_.end()) { | 692 if (iter != active_pointers_.end()) { |
| 691 active_pointers_.weak_erase(iter); | 693 active_pointers_.weak_erase(iter); |
| 692 pointers_to_delete_.push_back(pointer); | 694 pointers_to_delete_.push_back(pointer); |
| 693 } | 695 } |
| 694 } | 696 } |
| 695 | 697 |
| 696 } // namespace mus | 698 } // namespace mus |
| OLD | NEW |