Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(167)

Side by Side Diff: chrome/browser/android/vr_shell/vr_shell_gl.cc

Issue 2808723003: VR: Sending the fling event to the right target (Closed)
Patch Set: Add current_fling_target_ Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_gl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "chrome/browser/android/vr_shell/vr_shell_gl.h" 5 #include "chrome/browser/android/vr_shell/vr_shell_gl.h"
6 6
7 #include <chrono> 7 #include <chrono>
8 #include <limits> 8 #include <limits>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 635 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 646
647 for (auto& gesture : gesture_list) { 647 for (auto& gesture : gesture_list) {
648 gesture->x = pixel_x; 648 gesture->x = pixel_x;
649 gesture->y = pixel_y; 649 gesture->y = pixel_y;
650 auto movableGesture = base::MakeUnique<WebGestureEvent>(*gesture); 650 auto movableGesture = base::MakeUnique<WebGestureEvent>(*gesture);
651 651
652 switch (gesture->type()) { 652 switch (gesture->type()) {
653 // Once the user starts scrolling send all the scroll events to this 653 // Once the user starts scrolling send all the scroll events to this
654 // element until the scrolling stops. 654 // element until the scrolling stops.
655 case WebInputEvent::GestureScrollBegin: 655 case WebInputEvent::GestureScrollBegin:
656 current_scroll_target = input_target; 656 current_scroll_target_ = input_target;
657 if (current_scroll_target != InputTarget::NONE) { 657 if (current_scroll_target_ != InputTarget::NONE) {
658 SendGesture(current_scroll_target, std::move(movableGesture)); 658 SendGesture(current_scroll_target_, std::move(movableGesture));
659 } 659 }
660 break; 660 break;
661 case WebInputEvent::GestureScrollEnd: 661 case WebInputEvent::GestureScrollEnd:
662 if (current_scroll_target != InputTarget::NONE) { 662 if (current_scroll_target_ != InputTarget::NONE) {
663 SendGesture(current_scroll_target, std::move(movableGesture)); 663 SendGesture(current_scroll_target_, std::move(movableGesture));
664 } 664 }
665 current_scroll_target = InputTarget::NONE; 665 current_fling_target_ = current_scroll_target_;
666 current_scroll_target_ = InputTarget::NONE;
666 break; 667 break;
667 case WebInputEvent::GestureScrollUpdate: 668 case WebInputEvent::GestureScrollUpdate:
668 case WebInputEvent::GestureFlingCancel: 669 if (current_scroll_target_ != InputTarget::NONE) {
669 case WebInputEvent::GestureFlingStart: 670 SendGesture(current_scroll_target_, std::move(movableGesture));
670 if (current_scroll_target != InputTarget::NONE) {
671 SendGesture(current_scroll_target, std::move(movableGesture));
672 } 671 }
673 break; 672 break;
673 case WebInputEvent::GestureFlingStart:
674 if (current_fling_target_ != InputTarget::NONE) {
675 SendGesture(current_fling_target_, std::move(movableGesture));
676 }
677 current_fling_target_ = InputTarget::NONE;
678 break;
679 case WebInputEvent::GestureFlingCancel:
mthiesse 2017/04/12 17:46:20 Shouldn't FlingCancel do something like sending a
asimjour 2017/04/12 18:00:58 Fling cancel happens when user start to touch the
mthiesse 2017/04/12 18:05:28 Sure, but now we're sending a FlingCancel gesture
asimjour1 2017/04/12 18:15:32 I repeated the code under FlingCancel and TapDown,
674 case WebInputEvent::GestureTapDown: 680 case WebInputEvent::GestureTapDown:
681 current_fling_target_ = InputTarget::NONE;
675 if (input_target != InputTarget::NONE) { 682 if (input_target != InputTarget::NONE) {
676 SendGesture(input_target, std::move(movableGesture)); 683 SendGesture(input_target, std::move(movableGesture));
677 } 684 }
678 break; 685 break;
679 case WebInputEvent::Undefined: 686 case WebInputEvent::Undefined:
680 break; 687 break;
681 default: 688 default:
682 NOTREACHED(); 689 NOTREACHED();
683 } 690 }
684 } 691 }
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
1276 // InitializeGl. Revisit if the initialization order changes. 1283 // InitializeGl. Revisit if the initialization order changes.
1277 device::mojom::VRDisplayInfoPtr info = 1284 device::mojom::VRDisplayInfoPtr info =
1278 device::GvrDelegate::CreateVRDisplayInfo(gvr_api_.get(), 1285 device::GvrDelegate::CreateVRDisplayInfo(gvr_api_.get(),
1279 webvr_surface_size_, device_id); 1286 webvr_surface_size_, device_id);
1280 main_thread_task_runner_->PostTask( 1287 main_thread_task_runner_->PostTask(
1281 FROM_HERE, 1288 FROM_HERE,
1282 base::Bind(&RunVRDisplayInfoCallback, callback, base::Passed(&info))); 1289 base::Bind(&RunVRDisplayInfoCallback, callback, base::Passed(&info)));
1283 } 1290 }
1284 1291
1285 } // namespace vr_shell 1292 } // namespace vr_shell
OLDNEW
« no previous file with comments | « chrome/browser/android/vr_shell/vr_shell_gl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698