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

Side by Side Diff: third_party/WebKit/Source/platform/WebGestureEvent.cpp

Issue 2539283002: Remove PlatformGestureEvent in favour of using WebGestureEvent (Closed)
Patch Set: Rebase and fix comments Created 4 years 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
(Empty)
1 #include "public/platform/WebGestureEvent.h"
2
3 namespace blink {
4
5 float WebGestureEvent::deltaXInRootFrame() const {
6 if (type == WebInputEvent::GestureScrollBegin)
7 return data.scrollBegin.deltaXHint / frameScale;
8 DCHECK(type == WebInputEvent::GestureScrollUpdate);
9 return data.scrollUpdate.deltaX / frameScale;
10 }
11
12 float WebGestureEvent::deltaYInRootFrame() const {
13 if (type == WebInputEvent::GestureScrollBegin)
14 return data.scrollBegin.deltaYHint / frameScale;
15 DCHECK(type == WebInputEvent::GestureScrollUpdate);
16 return data.scrollUpdate.deltaY / frameScale;
17 }
18
19 WebGestureEvent::ScrollUnits WebGestureEvent::deltaUnits() const {
20 if (type == WebInputEvent::GestureScrollBegin)
21 return data.scrollBegin.deltaHintUnits;
22 if (type == WebInputEvent::GestureScrollUpdate)
23 return data.scrollUpdate.deltaUnits;
24 DCHECK(type == WebInputEvent::GestureScrollEnd);
25 return data.scrollEnd.deltaUnits;
26 }
27
28 float WebGestureEvent::pinchScale() const {
29 DCHECK(type == WebInputEvent::GesturePinchUpdate);
30 return data.pinchUpdate.scale;
31 }
32
33 WebGestureEvent::InertialPhaseState WebGestureEvent::inertialPhase() const {
34 if (type == WebInputEvent::GestureScrollBegin)
35 return data.scrollBegin.inertialPhase;
36 if (type == WebInputEvent::GestureScrollUpdate)
37 return data.scrollUpdate.inertialPhase;
38 DCHECK(type == WebInputEvent::GestureScrollEnd);
39 return data.scrollEnd.inertialPhase;
40 }
41
42 bool WebGestureEvent::synthetic() const {
43 if (type == WebInputEvent::GestureScrollBegin)
44 return data.scrollBegin.synthetic;
45 DCHECK(type == WebInputEvent::GestureScrollEnd);
46 return data.scrollEnd.synthetic;
47 }
48
49 float WebGestureEvent::velocityX() const {
50 if (type == WebInputEvent::GestureScrollUpdate)
51 return data.scrollUpdate.velocityX;
52 DCHECK(type == WebInputEvent::GestureFlingStart);
53 return data.flingStart.velocityX;
54 }
55
56 float WebGestureEvent::velocityY() const {
57 if (type == WebInputEvent::GestureScrollUpdate)
58 return data.scrollUpdate.velocityY;
59 DCHECK(type == WebInputEvent::GestureFlingStart);
60 return data.flingStart.velocityY;
61 }
62
63 WebFloatSize WebGestureEvent::tapAreaInRootFrame() const {
64 if (type == WebInputEvent::GestureTwoFingerTap) {
65 return WebFloatSize(data.twoFingerTap.firstFingerWidth / frameScale,
66 data.twoFingerTap.firstFingerHeight / frameScale);
67 } else if (type == WebInputEvent::GestureLongPress ||
68 type == WebInputEvent::GestureLongTap) {
69 return WebFloatSize(data.longPress.width / frameScale,
70 data.longPress.height / frameScale);
71 } else if (type == WebInputEvent::GestureTap ||
72 type == WebInputEvent::GestureTapUnconfirmed) {
73 return WebFloatSize(data.tap.width / frameScale,
74 data.tap.height / frameScale);
75 } else if (type == WebInputEvent::GestureTapDown) {
76 return WebFloatSize(data.tapDown.width / frameScale,
77 data.tapDown.height / frameScale);
78 } else if (type == WebInputEvent::GestureShowPress) {
79 return WebFloatSize(data.showPress.width / frameScale,
80 data.showPress.height / frameScale);
81 }
82 // This function is called for all gestures and determined if the tap
83 // area is empty or not; so return an empty rect here.
84 return WebFloatSize();
85 }
86
87 WebFloatPoint WebGestureEvent::positionInRootFrame() const {
88 return WebFloatPoint((x / frameScale) + frameTranslate.x,
89 (y / frameScale) + frameTranslate.y);
90 }
91
92 int WebGestureEvent::tapCount() const {
93 DCHECK(type == WebInputEvent::GestureTap);
94 return data.tap.tapCount;
95 }
96
97 void WebGestureEvent::applyTouchAdjustment(WebFloatPoint rootFrameCoords) {
98 frameTranslate.x = rootFrameCoords.x - (x / frameScale);
majidvp 2016/12/15 17:40:46 nit: the original method had a comment which was i
dtapuska 2016/12/15 21:29:39 Done.
99 frameTranslate.y = rootFrameCoords.y - (y / frameScale);
100 }
101
102 void WebGestureEvent::flattenTransform() {
103 if (frameScale != 1.0) {
104 switch (type) {
105 case WebInputEvent::GestureScrollBegin:
106 data.scrollBegin.deltaXHint /= frameScale;
107 data.scrollBegin.deltaYHint /= frameScale;
108 break;
109 case WebInputEvent::GestureScrollUpdate:
110 data.scrollUpdate.deltaX /= frameScale;
111 data.scrollUpdate.deltaY /= frameScale;
112 break;
113 case WebInputEvent::GestureTwoFingerTap:
114 data.twoFingerTap.firstFingerWidth /= frameScale;
115 data.twoFingerTap.firstFingerHeight /= frameScale;
116 break;
117 case WebInputEvent::GestureLongPress:
118 case WebInputEvent::GestureLongTap:
119 data.longPress.width /= frameScale;
120 data.longPress.height /= frameScale;
121 break;
122 case WebInputEvent::GestureTap:
123 case WebInputEvent::GestureTapUnconfirmed:
124 data.tap.width /= frameScale;
125 data.tap.height /= frameScale;
126 break;
127 case WebInputEvent::GestureTapDown:
128 data.tapDown.width /= frameScale;
129 data.tapDown.height /= frameScale;
130 break;
131 case WebInputEvent::GestureShowPress:
132 data.showPress.width /= frameScale;
133 data.showPress.height /= frameScale;
134 break;
135 default:
136 break;
137 }
138 }
139
140 x = (x / frameScale) + frameTranslate.x;
mustaq 2016/12/15 19:25:46 Any way we can do these transforms in a common pla
dtapuska 2016/12/15 21:29:39 I think that adding inline for div operators will
mustaq 2016/12/15 22:16:13 I didn't mean operator overload, sorry for being t
141 y = (y / frameScale) + frameTranslate.y;
142 frameTranslate.x = 0;
143 frameTranslate.y = 0;
144 frameScale = 1;
145 }
146
147 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698