| OLD | NEW |
| 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 "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/i18n/char_iterator.h" | 8 #include "base/i18n/char_iterator.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 (touch_point.state == WebTouchPoint::StateReleased || | 235 (touch_point.state == WebTouchPoint::StateReleased || |
| 236 touch_point.state == WebTouchPoint::StateCancelled)) { | 236 touch_point.state == WebTouchPoint::StateCancelled)) { |
| 237 continue; | 237 continue; |
| 238 } | 238 } |
| 239 if (included_types == CHANGED && | 239 if (included_types == CHANGED && |
| 240 (touch_point.state == WebTouchPoint::StateUndefined || | 240 (touch_point.state == WebTouchPoint::StateUndefined || |
| 241 touch_point.state == WebTouchPoint::StateStationary)) { | 241 touch_point.state == WebTouchPoint::StateStationary)) { |
| 242 continue; | 242 continue; |
| 243 } | 243 } |
| 244 PP_TouchPoint pp_pt; | 244 PP_TouchPoint pp_pt; |
| 245 pp_pt.id = touch_point.id; | 245 pp_pt.id = touch_point.pointerId; |
| 246 pp_pt.position.x = touch_point.position.x; | 246 pp_pt.position.x = touch_point.position.x; |
| 247 pp_pt.position.y = touch_point.position.y; | 247 pp_pt.position.y = touch_point.position.y; |
| 248 pp_pt.radius.x = touch_point.radiusX; | 248 pp_pt.radius.x = touch_point.width; |
| 249 pp_pt.radius.y = touch_point.radiusY; | 249 pp_pt.radius.y = touch_point.height; |
| 250 pp_pt.rotation_angle = touch_point.rotationAngle; | 250 pp_pt.rotation_angle = touch_point.rotationAngle; |
| 251 pp_pt.pressure = touch_point.force; | 251 pp_pt.pressure = touch_point.pressure; |
| 252 result->push_back(pp_pt); | 252 result->push_back(pp_pt); |
| 253 } | 253 } |
| 254 } | 254 } |
| 255 | 255 |
| 256 void AppendTouchEvent(const WebInputEvent& event, | 256 void AppendTouchEvent(const WebInputEvent& event, |
| 257 std::vector<InputEventData>* result_events) { | 257 std::vector<InputEventData>* result_events) { |
| 258 const WebTouchEvent& touch_event = | 258 const WebTouchEvent& touch_event = |
| 259 reinterpret_cast<const WebTouchEvent&>(event); | 259 reinterpret_cast<const WebTouchEvent&>(event); |
| 260 | 260 |
| 261 InputEventData result = GetEventWithCommonFieldsAndType(event); | 261 InputEventData result = GetEventWithCommonFieldsAndType(event); |
| 262 SetPPTouchPoints( | 262 SetPPTouchPoints( |
| 263 touch_event.touches, touch_event.touchesLength, ACTIVE, &result.touches); | 263 touch_event.touches, touch_event.touchesLength, ACTIVE, &result.touches); |
| 264 SetPPTouchPoints(touch_event.touches, | 264 SetPPTouchPoints(touch_event.touches, |
| 265 touch_event.touchesLength, | 265 touch_event.touchesLength, |
| 266 CHANGED, | 266 CHANGED, |
| 267 &result.changed_touches); | 267 &result.changed_touches); |
| 268 SetPPTouchPoints(touch_event.touches, | 268 SetPPTouchPoints(touch_event.touches, |
| 269 touch_event.touchesLength, | 269 touch_event.touchesLength, |
| 270 ALL, | 270 ALL, |
| 271 &result.target_touches); | 271 &result.target_touches); |
| 272 | 272 |
| 273 result_events->push_back(result); | 273 result_events->push_back(result); |
| 274 } | 274 } |
| 275 | 275 |
| 276 WebTouchPoint CreateWebTouchPoint(const PP_TouchPoint& pp_pt, | 276 WebTouchPoint CreateWebTouchPoint(const PP_TouchPoint& pp_pt, |
| 277 WebTouchPoint::State state) { | 277 WebTouchPoint::State state) { |
| 278 WebTouchPoint pt; | 278 WebTouchPoint pt; |
| 279 pt.id = pp_pt.id; | 279 pt.pointerId = pp_pt.id; |
| 280 pt.position.x = pp_pt.position.x; | 280 pt.position.x = pp_pt.position.x; |
| 281 pt.position.y = pp_pt.position.y; | 281 pt.position.y = pp_pt.position.y; |
| 282 // TODO bug:http://code.google.com/p/chromium/issues/detail?id=93902 | 282 // TODO bug:http://code.google.com/p/chromium/issues/detail?id=93902 |
| 283 pt.screenPosition.x = 0; | 283 pt.screenPosition.x = 0; |
| 284 pt.screenPosition.y = 0; | 284 pt.screenPosition.y = 0; |
| 285 pt.force = pp_pt.pressure; | 285 pt.pressure = pp_pt.pressure; |
| 286 pt.radiusX = pp_pt.radius.x; | 286 pt.width = pp_pt.radius.x; |
| 287 pt.radiusY = pp_pt.radius.y; | 287 pt.height = pp_pt.radius.y; |
| 288 pt.rotationAngle = pp_pt.rotation_angle; | 288 pt.rotationAngle = pp_pt.rotation_angle; |
| 289 pt.state = state; | 289 pt.state = state; |
| 290 return pt; | 290 return pt; |
| 291 } | 291 } |
| 292 | 292 |
| 293 bool HasTouchPointWithId(const WebTouchPoint* web_touches, | 293 bool HasTouchPointWithId(const WebTouchPoint* web_touches, |
| 294 uint32_t web_touches_length, | 294 uint32_t web_touches_length, |
| 295 uint32_t id) { | 295 uint32_t id) { |
| 296 // Note: A brute force search to find the (potentially) existing touch point | 296 // Note: A brute force search to find the (potentially) existing touch point |
| 297 // is cheap given the small bound on |WebTouchEvent::touchesLengthCap|. | 297 // is cheap given the small bound on |WebTouchEvent::touchesLengthCap|. |
| 298 for (uint32_t i = 0; i < web_touches_length; ++i) { | 298 for (uint32_t i = 0; i < web_touches_length; ++i) { |
| 299 if (web_touches[i].id == static_cast<int>(id)) | 299 if (web_touches[i].pointerId == static_cast<int>(id)) |
| 300 return true; | 300 return true; |
| 301 } | 301 } |
| 302 return false; | 302 return false; |
| 303 } | 303 } |
| 304 | 304 |
| 305 void SetWebTouchPointsIfNotYetSet(const std::vector<PP_TouchPoint>& pp_touches, | 305 void SetWebTouchPointsIfNotYetSet(const std::vector<PP_TouchPoint>& pp_touches, |
| 306 WebTouchPoint::State state, | 306 WebTouchPoint::State state, |
| 307 WebTouchPoint* web_touches, | 307 WebTouchPoint* web_touches, |
| 308 uint32_t* web_touches_length) { | 308 uint32_t* web_touches_length) { |
| 309 const uint32_t initial_web_touches_length = *web_touches_length; | 309 const uint32_t initial_web_touches_length = *web_touches_length; |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 749 case WebInputEvent::TouchStart: | 749 case WebInputEvent::TouchStart: |
| 750 return PP_INPUTEVENT_CLASS_TOUCH; | 750 return PP_INPUTEVENT_CLASS_TOUCH; |
| 751 case WebInputEvent::Undefined: | 751 case WebInputEvent::Undefined: |
| 752 default: | 752 default: |
| 753 CHECK(WebInputEvent::isGestureEventType(type)); | 753 CHECK(WebInputEvent::isGestureEventType(type)); |
| 754 return PP_InputEvent_Class(0); | 754 return PP_InputEvent_Class(0); |
| 755 } | 755 } |
| 756 } | 756 } |
| 757 | 757 |
| 758 } // namespace content | 758 } // namespace content |
| OLD | NEW |