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

Side by Side Diff: content/common/input/synthetic_web_input_event_builders.cc

Issue 679633005: Expose native, desktop and mobile gesture detection defaults (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code review Created 6 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/common/input/synthetic_web_input_event_builders.h" 5 #include "content/common/input/synthetic_web_input_event_builders.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "content/common/input/web_touch_event_traits.h" 8 #include "content/common/input/web_touch_event_traits.h"
9 #include "ui/events/keycodes/keyboard_codes.h" 9 #include "ui/events/keycodes/keyboard_codes.h"
10 10
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 for (unsigned int i = 0; i < touchesLength; ++i) { 156 for (unsigned int i = 0; i < touchesLength; ++i) {
157 if (touches[i].state == WebTouchPoint::StateReleased) 157 if (touches[i].state == WebTouchPoint::StateReleased)
158 continue; 158 continue;
159 159
160 touches[point] = touches[i]; 160 touches[point] = touches[i];
161 touches[point].state = WebTouchPoint::StateStationary; 161 touches[point].state = WebTouchPoint::StateStationary;
162 ++point; 162 ++point;
163 } 163 }
164 touchesLength = point; 164 touchesLength = point;
165 type = WebInputEvent::Undefined; 165 type = WebInputEvent::Undefined;
166 causesScrollingIfUncanceled = false;
166 } 167 }
167 168
168 int SyntheticWebTouchEvent::PressPoint(float x, float y) { 169 int SyntheticWebTouchEvent::PressPoint(float x, float y) {
169 if (touchesLength == touchesLengthCap) 170 if (touchesLength == touchesLengthCap)
170 return -1; 171 return -1;
171 WebTouchPoint& point = touches[touchesLength]; 172 WebTouchPoint& point = touches[touchesLength];
172 point.id = touchesLength; 173 point.id = touchesLength;
173 point.position.x = point.screenPosition.x = x; 174 point.position.x = point.screenPosition.x = x;
174 point.position.y = point.screenPosition.y = y; 175 point.position.y = point.screenPosition.y = y;
175 point.state = WebTouchPoint::StatePressed; 176 point.state = WebTouchPoint::StatePressed;
176 point.radiusX = point.radiusY = 1.f; 177 point.radiusX = point.radiusY = 1.f;
177 ++touchesLength; 178 ++touchesLength;
178 WebTouchEventTraits::ResetType( 179 WebTouchEventTraits::ResetType(
179 WebInputEvent::TouchStart, timeStampSeconds, this); 180 WebInputEvent::TouchStart, timeStampSeconds, this);
180 return point.id; 181 return point.id;
181 } 182 }
182 183
183 void SyntheticWebTouchEvent::MovePoint(int index, float x, float y) { 184 void SyntheticWebTouchEvent::MovePoint(int index, float x, float y) {
184 CHECK(index >= 0 && index < touchesLengthCap); 185 CHECK_GE(index, 0);
186 CHECK_LT(index, touchesLengthCap);
187 // Always set this bit to avoid otherwise unexpected touchmove suppression.
188 // The caller can opt-out explicitly, if necessary.
189 causesScrollingIfUncanceled = true;
185 WebTouchPoint& point = touches[index]; 190 WebTouchPoint& point = touches[index];
186 point.position.x = point.screenPosition.x = x; 191 point.position.x = point.screenPosition.x = x;
187 point.position.y = point.screenPosition.y = y; 192 point.position.y = point.screenPosition.y = y;
188 touches[index].state = WebTouchPoint::StateMoved; 193 touches[index].state = WebTouchPoint::StateMoved;
189 WebTouchEventTraits::ResetType( 194 WebTouchEventTraits::ResetType(
190 WebInputEvent::TouchMove, timeStampSeconds, this); 195 WebInputEvent::TouchMove, timeStampSeconds, this);
191 } 196 }
192 197
193 void SyntheticWebTouchEvent::ReleasePoint(int index) { 198 void SyntheticWebTouchEvent::ReleasePoint(int index) {
194 CHECK(index >= 0 && index < touchesLengthCap); 199 CHECK_GE(index, 0);
200 CHECK_LT(index, touchesLengthCap);
195 touches[index].state = WebTouchPoint::StateReleased; 201 touches[index].state = WebTouchPoint::StateReleased;
196 WebTouchEventTraits::ResetType( 202 WebTouchEventTraits::ResetType(
197 WebInputEvent::TouchEnd, timeStampSeconds, this); 203 WebInputEvent::TouchEnd, timeStampSeconds, this);
198 } 204 }
199 205
200 void SyntheticWebTouchEvent::CancelPoint(int index) { 206 void SyntheticWebTouchEvent::CancelPoint(int index) {
201 CHECK(index >= 0 && index < touchesLengthCap); 207 CHECK_GE(index, 0);
208 CHECK_LT(index, touchesLengthCap);
202 touches[index].state = WebTouchPoint::StateCancelled; 209 touches[index].state = WebTouchPoint::StateCancelled;
203 WebTouchEventTraits::ResetType( 210 WebTouchEventTraits::ResetType(
204 WebInputEvent::TouchCancel, timeStampSeconds, this); 211 WebInputEvent::TouchCancel, timeStampSeconds, this);
205 } 212 }
206 213
207 void SyntheticWebTouchEvent::SetTimestamp(base::TimeDelta timestamp) { 214 void SyntheticWebTouchEvent::SetTimestamp(base::TimeDelta timestamp) {
208 timeStampSeconds = timestamp.InSecondsF(); 215 timeStampSeconds = timestamp.InSecondsF();
209 } 216 }
210 217
211 } // namespace content 218 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/ui_events_helper.cc ('k') | content/common/input/web_input_event_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698