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

Side by Side Diff: ui/events/gestures/gesture_sequence.cc

Issue 189583007: Ensure Multi-finger tap generates both GestureScrollBegin and GestureScrollEnd. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Perform fix in all required locations. Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « ui/aura/gestures/gesture_recognizer_unittest.cc ('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 (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 "ui/events/gestures/gesture_sequence.h" 5 #include "ui/events/gestures/gesture_sequence.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 10
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 case GST_SYNTHETIC_CLICK_ABORTED_SECOND_PRESSED: 626 case GST_SYNTHETIC_CLICK_ABORTED_SECOND_PRESSED:
627 TwoFingerTapOrPinch(event, point, gestures.get()); 627 TwoFingerTapOrPinch(event, point, gestures.get());
628 break; 628 break;
629 case GST_SCROLL_SECOND_PRESSED: 629 case GST_SCROLL_SECOND_PRESSED:
630 PinchStart(event, point, gestures.get()); 630 PinchStart(event, point, gestures.get());
631 set_state(GS_PINCH); 631 set_state(GS_PINCH);
632 break; 632 break;
633 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED: 633 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED:
634 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED: 634 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED:
635 TwoFingerTouchReleased(event, point, gestures.get()); 635 TwoFingerTouchReleased(event, point, gestures.get());
636 AppendScrollGestureBegin(
637 point, point.first_touch_position(), gestures.get());
638 scroll_type_ = ST_FREE;
636 set_state(GS_SCROLL); 639 set_state(GS_SCROLL);
sadrul 2014/03/10 03:54:52 It may make sense to have a 'TransitionToScrollSta
tdresser 2014/03/10 12:36:39 Done. Named "StartRailFreeScroll," to indicate tha
637 break; 640 break;
638 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED: 641 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED:
639 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED: 642 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED:
640 if (TwoFingerTouchMove(event, point, gestures.get())) 643 if (TwoFingerTouchMove(event, point, gestures.get()))
641 set_state(GS_PINCH); 644 set_state(GS_PINCH);
642 break; 645 break;
643 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED_HANDLED: 646 case GST_PENDING_TWO_FINGER_TAP_FIRST_MOVED_HANDLED:
644 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED_HANDLED: 647 case GST_PENDING_TWO_FINGER_TAP_SECOND_MOVED_HANDLED:
645 set_state(GS_PENDING_TWO_FINGER_TAP_NO_PINCH); 648 set_state(GS_PENDING_TWO_FINGER_TAP_NO_PINCH);
646 break; 649 break;
647 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED: 650 case GST_PENDING_TWO_FINGER_TAP_FIRST_RELEASED_HANDLED:
648 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED: 651 case GST_PENDING_TWO_FINGER_TAP_SECOND_RELEASED_HANDLED:
649 case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED: 652 case GST_PENDING_TWO_FINGER_TAP_FIRST_CANCELLED:
650 case GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED: 653 case GST_PENDING_TWO_FINGER_TAP_SECOND_CANCELLED:
654 AppendScrollGestureBegin(
655 point, point.first_touch_position(), gestures.get());
651 scroll_type_ = ST_FREE; 656 scroll_type_ = ST_FREE;
652 set_state(GS_SCROLL); 657 set_state(GS_SCROLL);
653 break; 658 break;
654 case GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED: 659 case GST_PENDING_TWO_FINGER_TAP_THIRD_PRESSED:
655 set_state(GS_PENDING_PINCH); 660 set_state(GS_PENDING_PINCH);
656 break; 661 break;
657 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_MOVED: 662 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_MOVED:
658 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_MOVED: 663 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_MOVED:
659 // No pinch allowed, so nothing happens. 664 // No pinch allowed, so nothing happens.
660 break; 665 break;
661 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_RELEASED: 666 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_RELEASED:
662 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_RELEASED: 667 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_RELEASED:
663 TwoFingerTouchReleased(event, point, gestures.get()); 668 TwoFingerTouchReleased(event, point, gestures.get());
664 // We transit into GS_SCROLL even though the touch move can be 669 // We transition into GS_SCROLL even though the touch move can be consumed
665 // consumed and no scroll should happen. crbug.com/240399. 670 // and no scroll should happen. crbug.com/240399.
671 AppendScrollGestureBegin(
672 point, point.first_touch_position(), gestures.get());
666 set_state(GS_SCROLL); 673 set_state(GS_SCROLL);
667 break; 674 break;
668 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_RELEASED_HANDLED: 675 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_RELEASED_HANDLED:
669 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_RELEASED_HANDLED: 676 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_RELEASED_HANDLED:
670 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_CANCELLED: 677 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_FIRST_CANCELLED:
671 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_CANCELLED: 678 case GST_PENDING_TWO_FINGER_TAP_NO_PINCH_SECOND_CANCELLED:
672 // We transit into GS_SCROLL even though the touch move can be 679 // We transition into GS_SCROLL even though the touch move can be consumed
673 // consumed and no scroll should happen. crbug.com/240399. 680 // and no scroll should happen. crbug.com/240399.
681 AppendScrollGestureBegin(
682 point, point.first_touch_position(), gestures.get());
674 scroll_type_ = ST_FREE; 683 scroll_type_ = ST_FREE;
675 set_state(GS_SCROLL); 684 set_state(GS_SCROLL);
676 break; 685 break;
677 case GST_PENDING_PINCH_FIRST_MOVED: 686 case GST_PENDING_PINCH_FIRST_MOVED:
678 case GST_PENDING_PINCH_SECOND_MOVED: 687 case GST_PENDING_PINCH_SECOND_MOVED:
679 if (TwoFingerTouchMove(event, point, gestures.get())) 688 if (TwoFingerTouchMove(event, point, gestures.get()))
680 set_state(GS_PINCH); 689 set_state(GS_PINCH);
681 break; 690 break;
682 case GST_PENDING_PINCH_FIRST_MOVED_HANDLED: 691 case GST_PENDING_PINCH_FIRST_MOVED_HANDLED:
683 case GST_PENDING_PINCH_SECOND_MOVED_HANDLED: 692 case GST_PENDING_PINCH_SECOND_MOVED_HANDLED:
684 set_state(GS_PENDING_PINCH_NO_PINCH); 693 set_state(GS_PENDING_PINCH_NO_PINCH);
685 break; 694 break;
686 case GST_PENDING_PINCH_FIRST_RELEASED: 695 case GST_PENDING_PINCH_FIRST_RELEASED:
687 case GST_PENDING_PINCH_SECOND_RELEASED: 696 case GST_PENDING_PINCH_SECOND_RELEASED:
688 case GST_PENDING_PINCH_FIRST_CANCELLED: 697 case GST_PENDING_PINCH_FIRST_CANCELLED:
689 case GST_PENDING_PINCH_SECOND_CANCELLED: 698 case GST_PENDING_PINCH_SECOND_CANCELLED:
690 // We transit into GS_SCROLL even though the touch move can be 699 // We transition into GS_SCROLL even though the touch move can be consumed
691 // consumed and no scroll should happen. crbug.com/240399. 700 // and no scroll should happen. crbug.com/240399.
701 AppendScrollGestureBegin(
702 point, point.first_touch_position(), gestures.get());
692 scroll_type_ = ST_FREE; 703 scroll_type_ = ST_FREE;
693 set_state(GS_SCROLL); 704 set_state(GS_SCROLL);
694 break; 705 break;
695 case GST_PENDING_PINCH_NO_PINCH_FIRST_MOVED: 706 case GST_PENDING_PINCH_NO_PINCH_FIRST_MOVED:
696 case GST_PENDING_PINCH_NO_PINCH_SECOND_MOVED: 707 case GST_PENDING_PINCH_NO_PINCH_SECOND_MOVED:
697 // No pinch allowed, so nothing happens. 708 // No pinch allowed, so nothing happens.
698 break; 709 break;
699 case GST_PENDING_PINCH_NO_PINCH_FIRST_RELEASED: 710 case GST_PENDING_PINCH_NO_PINCH_FIRST_RELEASED:
700 case GST_PENDING_PINCH_NO_PINCH_SECOND_RELEASED: 711 case GST_PENDING_PINCH_NO_PINCH_SECOND_RELEASED:
701 case GST_PENDING_PINCH_NO_PINCH_FIRST_CANCELLED: 712 case GST_PENDING_PINCH_NO_PINCH_FIRST_CANCELLED:
702 case GST_PENDING_PINCH_NO_PINCH_SECOND_CANCELLED: 713 case GST_PENDING_PINCH_NO_PINCH_SECOND_CANCELLED:
703 // We transit into GS_SCROLL even though the touch move can be 714 // We transition into GS_SCROLL even though the touch move can be consumed
704 // consumed and no scroll should happen. crbug.com/240399. 715 // and no scroll should happen. crbug.com/240399.
716 AppendScrollGestureBegin(
717 point, point.first_touch_position(), gestures.get());
705 scroll_type_ = ST_FREE; 718 scroll_type_ = ST_FREE;
706 set_state(GS_SCROLL); 719 set_state(GS_SCROLL);
707 break; 720 break;
708 case GST_PINCH_FIRST_MOVED_HANDLED: 721 case GST_PINCH_FIRST_MOVED_HANDLED:
709 case GST_PINCH_SECOND_MOVED_HANDLED: 722 case GST_PINCH_SECOND_MOVED_HANDLED:
710 case GST_PINCH_THIRD_MOVED_HANDLED: 723 case GST_PINCH_THIRD_MOVED_HANDLED:
711 case GST_PINCH_FOURTH_MOVED_HANDLED: 724 case GST_PINCH_FOURTH_MOVED_HANDLED:
712 case GST_PINCH_FIFTH_MOVED_HANDLED: 725 case GST_PINCH_FIFTH_MOVED_HANDLED:
713 break; 726 break;
714 case GST_PINCH_FIRST_MOVED: 727 case GST_PINCH_FIRST_MOVED:
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after
1473 1486
1474 // Since a timer is running, there should be a non-NULL point. 1487 // Since a timer is running, there should be a non-NULL point.
1475 const GesturePoint* point = GetPointByPointId(0); 1488 const GesturePoint* point = GetPointByPointId(0);
1476 if (!point->IsInsideTouchSlopRegion(event)) { 1489 if (!point->IsInsideTouchSlopRegion(event)) {
1477 GetLongPressTimer()->Stop(); 1490 GetLongPressTimer()->Stop();
1478 GetShowPressTimer()->Stop(); 1491 GetShowPressTimer()->Stop();
1479 } 1492 }
1480 } 1493 }
1481 1494
1482 } // namespace ui 1495 } // namespace ui
OLDNEW
« no previous file with comments | « ui/aura/gestures/gesture_recognizer_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698