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

Side by Side Diff: content/renderer/pepper/event_conversion.cc

Issue 557863002: Remove references to WebTouchEvent.targetTouches (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 (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 "content/renderer/pepper/event_conversion.h" 5 #include "content/renderer/pepper/event_conversion.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/i18n/char_iterator.h" 10 #include "base/i18n/char_iterator.h"
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 InputEventData result = GetEventWithCommonFieldsAndType(event); 208 InputEventData result = GetEventWithCommonFieldsAndType(event);
209 result.event_modifiers = mouse_wheel_event.modifiers; 209 result.event_modifiers = mouse_wheel_event.modifiers;
210 result.wheel_delta.x = mouse_wheel_event.deltaX; 210 result.wheel_delta.x = mouse_wheel_event.deltaX;
211 result.wheel_delta.y = mouse_wheel_event.deltaY; 211 result.wheel_delta.y = mouse_wheel_event.deltaY;
212 result.wheel_ticks.x = mouse_wheel_event.wheelTicksX; 212 result.wheel_ticks.x = mouse_wheel_event.wheelTicksX;
213 result.wheel_ticks.y = mouse_wheel_event.wheelTicksY; 213 result.wheel_ticks.y = mouse_wheel_event.wheelTicksY;
214 result.wheel_scroll_by_page = !!mouse_wheel_event.scrollByPage; 214 result.wheel_scroll_by_page = !!mouse_wheel_event.scrollByPage;
215 result_events->push_back(result); 215 result_events->push_back(result);
216 } 216 }
217 217
218 enum IncludedTouchPointTypes {
219 ACTIVE, // Only pointers that are currently down.
220 CHANGED // Only pointers that have changed since the previous event.
221 };
218 void SetPPTouchPoints(const WebTouchPoint* touches, 222 void SetPPTouchPoints(const WebTouchPoint* touches,
219 uint32_t touches_length, 223 uint32_t touches_length,
224 IncludedTouchPointTypes included_types,
220 std::vector<PP_TouchPoint>* result) { 225 std::vector<PP_TouchPoint>* result) {
221 for (uint32_t i = 0; i < touches_length; i++) { 226 for (uint32_t i = 0; i < touches_length; i++) {
222 const WebTouchPoint& touch_point = touches[i]; 227 const WebTouchPoint& touch_point = touches[i];
228 if (included_types == ACTIVE &&
229 (touch_point.state == WebTouchPoint::StateReleased ||
230 touch_point.state == WebTouchPoint::StateCancelled)) {
231 continue;
232 }
233 if (included_types == CHANGED &&
234 (touch_point.state == WebTouchPoint::StateUndefined ||
235 touch_point.state == WebTouchPoint::StateStationary)) {
236 continue;
237 }
223 PP_TouchPoint pp_pt; 238 PP_TouchPoint pp_pt;
224 pp_pt.id = touch_point.id; 239 pp_pt.id = touch_point.id;
225 pp_pt.position.x = touch_point.position.x; 240 pp_pt.position.x = touch_point.position.x;
226 pp_pt.position.y = touch_point.position.y; 241 pp_pt.position.y = touch_point.position.y;
227 pp_pt.radius.x = touch_point.radiusX; 242 pp_pt.radius.x = touch_point.radiusX;
228 pp_pt.radius.y = touch_point.radiusY; 243 pp_pt.radius.y = touch_point.radiusY;
229 pp_pt.rotation_angle = touch_point.rotationAngle; 244 pp_pt.rotation_angle = touch_point.rotationAngle;
230 pp_pt.pressure = touch_point.force; 245 pp_pt.pressure = touch_point.force;
231 result->push_back(pp_pt); 246 result->push_back(pp_pt);
232 } 247 }
233 } 248 }
234 249
235 void AppendTouchEvent(const WebInputEvent& event, 250 void AppendTouchEvent(const WebInputEvent& event,
236 std::vector<InputEventData>* result_events) { 251 std::vector<InputEventData>* result_events) {
237 const WebTouchEvent& touch_event = 252 const WebTouchEvent& touch_event =
238 reinterpret_cast<const WebTouchEvent&>(event); 253 reinterpret_cast<const WebTouchEvent&>(event);
239 254
240 InputEventData result = GetEventWithCommonFieldsAndType(event); 255 InputEventData result = GetEventWithCommonFieldsAndType(event);
241 SetPPTouchPoints( 256 SetPPTouchPoints(
242 touch_event.touches, touch_event.touchesLength, &result.touches); 257 touch_event.touches, touch_event.touchesLength, ACTIVE, &result.touches);
243 SetPPTouchPoints(touch_event.changedTouches, 258 SetPPTouchPoints(touch_event.touches,
244 touch_event.changedTouchesLength, 259 touch_event.touchesLength,
260 CHANGED,
245 &result.changed_touches); 261 &result.changed_touches);
246 SetPPTouchPoints(touch_event.targetTouches,
247 touch_event.targetTouchesLength,
248 &result.target_touches);
249 262
250 result_events->push_back(result); 263 result_events->push_back(result);
251 } 264 }
252 265
253 // Structure used to map touch point id's to touch states. Since the pepper 266 // Structure used to map touch point id's to touch states. Since the pepper
254 // touch event structure does not have states for individual touch points and 267 // touch event structure does not have states for individual touch points and
255 // instead relies on the event type in combination with the set of touch lists, 268 // instead relies on the event type in combination with the set of touch lists,
256 // we have to set the state for the changed touches to be the same as the event 269 // we have to set the state for the changed touches to be the same as the event
257 // type and all others to be 'stationary.' 270 // type and all others to be 'stationary.'
258 typedef std::map<uint32_t, WebTouchPoint::State> TouchStateMap; 271 typedef std::map<uint32_t, WebTouchPoint::State> TouchStateMap;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 default: 325 default:
313 NOTREACHED(); 326 NOTREACHED();
314 } 327 }
315 WebTouchEventTraits::ResetType( 328 WebTouchEventTraits::ResetType(
316 type, PPTimeTicksToEventTime(event.event_time_stamp), web_event); 329 type, PPTimeTicksToEventTime(event.event_time_stamp), web_event);
317 330
318 TouchStateMap states_map; 331 TouchStateMap states_map;
319 for (uint32_t i = 0; i < event.changed_touches.size(); i++) 332 for (uint32_t i = 0; i < event.changed_touches.size(); i++)
320 states_map[event.changed_touches[i].id] = state; 333 states_map[event.changed_touches[i].id] = state;
321 334
322 SetWebTouchPoints(event.changed_touches,
323 states_map,
324 web_event->changedTouches,
325 &web_event->changedTouchesLength);
326
327 SetWebTouchPoints( 335 SetWebTouchPoints(
328 event.touches, states_map, web_event->touches, &web_event->touchesLength); 336 event.touches, states_map, web_event->touches, &web_event->touchesLength);
bokan 2014/09/09 20:17:38 Where do the InputEventData events come from? Will
jdduke (slow) 2014/09/09 20:52:24 We're not sure, so we have the branch below. I thi
329 337
330 SetWebTouchPoints(event.target_touches,
331 states_map,
332 web_event->targetTouches,
333 &web_event->targetTouchesLength);
334
335 if (web_event->type == WebInputEvent::TouchEnd || 338 if (web_event->type == WebInputEvent::TouchEnd ||
336 web_event->type == WebInputEvent::TouchCancel) { 339 web_event->type == WebInputEvent::TouchCancel) {
337 SetWebTouchPoints(event.changed_touches, 340 SetWebTouchPoints(event.changed_touches,
bokan 2014/09/09 20:17:38 Same question again, are we sure ToucheEnd/Cancel
jdduke (slow) 2014/09/09 20:52:24 Ah, you're right, I thought SetWebTouchPoints chec
338 states_map, 341 states_map,
339 web_event->touches, 342 web_event->touches,
340 &web_event->touchesLength); 343 &web_event->touchesLength);
341 SetWebTouchPoints(event.changed_touches,
342 states_map,
343 web_event->targetTouches,
344 &web_event->targetTouchesLength);
345 } 344 }
346 345
347 return web_event; 346 return web_event;
348 } 347 }
349 348
350 WebKeyboardEvent* BuildKeyEvent(const InputEventData& event) { 349 WebKeyboardEvent* BuildKeyEvent(const InputEventData& event) {
351 WebKeyboardEvent* key_event = new WebKeyboardEvent(); 350 WebKeyboardEvent* key_event = new WebKeyboardEvent();
352 switch (event.event_type) { 351 switch (event.event_type) {
353 case PP_INPUTEVENT_TYPE_RAWKEYDOWN: 352 case PP_INPUTEVENT_TYPE_RAWKEYDOWN:
354 key_event->type = WebInputEvent::RawKeyDown; 353 key_event->type = WebInputEvent::RawKeyDown;
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 case WebInputEvent::TouchStart: 729 case WebInputEvent::TouchStart:
731 return PP_INPUTEVENT_CLASS_TOUCH; 730 return PP_INPUTEVENT_CLASS_TOUCH;
732 case WebInputEvent::Undefined: 731 case WebInputEvent::Undefined:
733 default: 732 default:
734 CHECK(WebInputEvent::isGestureEventType(type)); 733 CHECK(WebInputEvent::isGestureEventType(type));
735 return PP_InputEvent_Class(0); 734 return PP_InputEvent_Class(0);
736 } 735 }
737 } 736 }
738 737
739 } // namespace content 738 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698