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

Side by Side Diff: content/browser/renderer_host/input/gesture_event_packet.cc

Issue 181833003: [Android] Out with the Android GR, in with the new unified C++ GR (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup and rebase 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/renderer_host/input/gesture_event_packet.h" 5 #include "content/browser/renderer_host/input/gesture_event_packet.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "ui/events/gesture_detection/motion_event.h"
8 9
9 using blink::WebGestureEvent; 10 using blink::WebGestureEvent;
10 using blink::WebInputEvent; 11 using blink::WebInputEvent;
11 using blink::WebTouchEvent; 12 using blink::WebTouchEvent;
12 using blink::WebTouchPoint; 13 using blink::WebTouchPoint;
13 14
14 namespace content { 15 namespace content {
15 namespace { 16 namespace {
16 17
17 GestureEventPacket::GestureSource ToGestureSource(const WebTouchEvent& event) { 18 GestureEventPacket::GestureSource
18 if (!event.touchesLength) 19 ToGestureSource(const ui::MotionEvent& event) {
tdresser 2014/02/27 15:28:30 Nice cleanup here.
jdduke (slow) 2014/02/27 17:40:29 :)
19 return GestureEventPacket::INVALID; 20 switch (event.GetAction()) {
20 switch (event.type) { 21 case ui::MotionEvent::ACTION_DOWN:
21 case WebInputEvent::TouchStart:
22 for (size_t i = 0; i < event.touchesLength; i++) {
23 if (event.touches[i].state != WebTouchPoint::StatePressed)
24 return GestureEventPacket::TOUCH_BEGIN;
25 }
26 return GestureEventPacket::TOUCH_SEQUENCE_BEGIN; 22 return GestureEventPacket::TOUCH_SEQUENCE_BEGIN;
27 case WebInputEvent::TouchMove: 23 case ui::MotionEvent::ACTION_UP:
24 return GestureEventPacket::TOUCH_SEQUENCE_END;
25 case ui::MotionEvent::ACTION_MOVE:
28 return GestureEventPacket::TOUCH_MOVE; 26 return GestureEventPacket::TOUCH_MOVE;
29 case WebInputEvent::TouchEnd: 27 case ui::MotionEvent::ACTION_CANCEL:
30 case WebInputEvent::TouchCancel:
31 for (size_t i = 0; i < event.touchesLength; i++) {
32 if (event.touches[i].state != WebTouchPoint::StateReleased &&
33 event.touches[i].state != WebTouchPoint::StateCancelled) {
34 return GestureEventPacket::TOUCH_END;
35 }
36 }
37 return GestureEventPacket::TOUCH_SEQUENCE_END; 28 return GestureEventPacket::TOUCH_SEQUENCE_END;
38 default: 29 case ui::MotionEvent::ACTION_POINTER_DOWN:
39 return GestureEventPacket::INVALID; 30 return GestureEventPacket::TOUCH_BEGIN;
40 } 31 case ui::MotionEvent::ACTION_POINTER_UP:
32 return GestureEventPacket::TOUCH_END;
33 };
34 NOTREACHED() << "Invalid ui::MotionEvent action: " << event.GetAction();
35 return GestureEventPacket::INVALID;
41 } 36 }
42 37
43 } // namespace 38 } // namespace
44 39
45 GestureEventPacket::GestureEventPacket() 40 GestureEventPacket::GestureEventPacket()
46 : gesture_count_(0), 41 : gesture_count_(0),
47 gesture_source_(UNDEFINED) {} 42 gesture_source_(UNDEFINED) {}
48 43
49 GestureEventPacket::GestureEventPacket(GestureSource source) 44 GestureEventPacket::GestureEventPacket(GestureSource source)
50 : gesture_count_(0), 45 : gesture_count_(0),
(...skipping 16 matching lines...) Expand all
67 std::copy(other.gestures_, other.gestures_ + other.gesture_count_, gestures_); 62 std::copy(other.gestures_, other.gestures_ + other.gesture_count_, gestures_);
68 return *this; 63 return *this;
69 } 64 }
70 65
71 void GestureEventPacket::Push(const blink::WebGestureEvent& gesture) { 66 void GestureEventPacket::Push(const blink::WebGestureEvent& gesture) {
72 DCHECK(WebInputEvent::isGestureEventType(gesture.type)); 67 DCHECK(WebInputEvent::isGestureEventType(gesture.type));
73 CHECK_LT(gesture_count_, static_cast<size_t>(kMaxGesturesPerTouch)); 68 CHECK_LT(gesture_count_, static_cast<size_t>(kMaxGesturesPerTouch));
74 gestures_[gesture_count_++] = gesture; 69 gestures_[gesture_count_++] = gesture;
75 } 70 }
76 71
77 GestureEventPacket GestureEventPacket::FromTouch(const WebTouchEvent& event) { 72 GestureEventPacket GestureEventPacket::FromTouch(const ui::MotionEvent& event) {
78 return GestureEventPacket(ToGestureSource(event)); 73 return GestureEventPacket(ToGestureSource(event));
79 } 74 }
80 75
81 GestureEventPacket GestureEventPacket::FromTouchTimeout( 76 GestureEventPacket GestureEventPacket::FromTouchTimeout(
82 const WebGestureEvent& event) { 77 const WebGestureEvent& event) {
83 GestureEventPacket packet(TOUCH_TIMEOUT); 78 GestureEventPacket packet(TOUCH_TIMEOUT);
84 packet.Push(event); 79 packet.Push(event);
85 return packet; 80 return packet;
86 } 81 }
87 82
88 } // namespace content 83 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698