| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 // MSVC++ requires this to be set before any other includes to get M_PI. | 5 // MSVC++ requires this to be set before any other includes to get M_PI. |
| 6 #define _USE_MATH_DEFINES | 6 #define _USE_MATH_DEFINES |
| 7 | 7 |
| 8 #include "ui/events/blink/blink_event_util.h" | 8 #include "ui/events/blink/blink_event_util.h" |
| 9 | 9 |
| 10 #include <stddef.h> | 10 #include <stddef.h> |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 static_assert( | 233 static_assert( |
| 234 WebInputEvent::DispatchType::ListenersNonBlockingPassive < | 234 WebInputEvent::DispatchType::ListenersNonBlockingPassive < |
| 235 WebInputEvent::DispatchType::ListenersForcedNonBlockingDueToFling, | 235 WebInputEvent::DispatchType::ListenersForcedNonBlockingDueToFling, |
| 236 "Enum not ordered correctly"); | 236 "Enum not ordered correctly"); |
| 237 return static_cast<WebInputEvent::DispatchType>( | 237 return static_cast<WebInputEvent::DispatchType>( |
| 238 std::min(static_cast<int>(type_1), static_cast<int>(type_2))); | 238 std::min(static_cast<int>(type_1), static_cast<int>(type_2))); |
| 239 } | 239 } |
| 240 | 240 |
| 241 bool CanCoalesce(const WebMouseEvent& event_to_coalesce, | 241 bool CanCoalesce(const WebMouseEvent& event_to_coalesce, |
| 242 const WebMouseEvent& event) { | 242 const WebMouseEvent& event) { |
| 243 return event.type == event_to_coalesce.type && | 243 return event.type() == event_to_coalesce.type() && |
| 244 event.type == WebInputEvent::MouseMove; | 244 event.type() == WebInputEvent::MouseMove; |
| 245 } | 245 } |
| 246 | 246 |
| 247 void Coalesce(const WebMouseEvent& event_to_coalesce, WebMouseEvent* event) { | 247 void Coalesce(const WebMouseEvent& event_to_coalesce, WebMouseEvent* event) { |
| 248 DCHECK(CanCoalesce(event_to_coalesce, *event)); | 248 DCHECK(CanCoalesce(event_to_coalesce, *event)); |
| 249 // Accumulate movement deltas. | 249 // Accumulate movement deltas. |
| 250 int x = event->movementX; | 250 int x = event->movementX; |
| 251 int y = event->movementY; | 251 int y = event->movementY; |
| 252 *event = event_to_coalesce; | 252 *event = event_to_coalesce; |
| 253 event->movementX += x; | 253 event->movementX += x; |
| 254 event->movementY += y; | 254 event->movementY += y; |
| 255 } | 255 } |
| 256 | 256 |
| 257 bool CanCoalesce(const WebMouseWheelEvent& event_to_coalesce, | 257 bool CanCoalesce(const WebMouseWheelEvent& event_to_coalesce, |
| 258 const WebMouseWheelEvent& event) { | 258 const WebMouseWheelEvent& event) { |
| 259 return event.modifiers == event_to_coalesce.modifiers && | 259 return event.modifiers() == event_to_coalesce.modifiers() && |
| 260 event.scrollByPage == event_to_coalesce.scrollByPage && | 260 event.scrollByPage == event_to_coalesce.scrollByPage && |
| 261 event.phase == event_to_coalesce.phase && | 261 event.phase == event_to_coalesce.phase && |
| 262 event.momentumPhase == event_to_coalesce.momentumPhase && | 262 event.momentumPhase == event_to_coalesce.momentumPhase && |
| 263 event.hasPreciseScrollingDeltas == | 263 event.hasPreciseScrollingDeltas == |
| 264 event_to_coalesce.hasPreciseScrollingDeltas; | 264 event_to_coalesce.hasPreciseScrollingDeltas; |
| 265 } | 265 } |
| 266 | 266 |
| 267 void Coalesce(const WebMouseWheelEvent& event_to_coalesce, | 267 void Coalesce(const WebMouseWheelEvent& event_to_coalesce, |
| 268 WebMouseWheelEvent* event) { | 268 WebMouseWheelEvent* event) { |
| 269 DCHECK(CanCoalesce(event_to_coalesce, *event)); | 269 DCHECK(CanCoalesce(event_to_coalesce, *event)); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 289 event->movementX += old_movementX; | 289 event->movementX += old_movementX; |
| 290 event->movementY += old_movementY; | 290 event->movementY += old_movementY; |
| 291 event->accelerationRatioX = | 291 event->accelerationRatioX = |
| 292 GetAccelerationRatio(event->deltaX, unaccelerated_x); | 292 GetAccelerationRatio(event->deltaX, unaccelerated_x); |
| 293 event->accelerationRatioY = | 293 event->accelerationRatioY = |
| 294 GetAccelerationRatio(event->deltaY, unaccelerated_y); | 294 GetAccelerationRatio(event->deltaY, unaccelerated_y); |
| 295 } | 295 } |
| 296 | 296 |
| 297 bool CanCoalesce(const WebTouchEvent& event_to_coalesce, | 297 bool CanCoalesce(const WebTouchEvent& event_to_coalesce, |
| 298 const WebTouchEvent& event) { | 298 const WebTouchEvent& event) { |
| 299 if (event.type != event_to_coalesce.type || | 299 if (event.type() != event_to_coalesce.type() || |
| 300 event.type != WebInputEvent::TouchMove || | 300 event.type() != WebInputEvent::TouchMove || |
| 301 event.modifiers != event_to_coalesce.modifiers || | 301 event.modifiers() != event_to_coalesce.modifiers() || |
| 302 event.touchesLength != event_to_coalesce.touchesLength || | 302 event.touchesLength != event_to_coalesce.touchesLength || |
| 303 event.touchesLength > WebTouchEvent::kTouchesLengthCap) | 303 event.touchesLength > WebTouchEvent::kTouchesLengthCap) |
| 304 return false; | 304 return false; |
| 305 | 305 |
| 306 static_assert(WebTouchEvent::kTouchesLengthCap <= sizeof(int32_t) * 8U, | 306 static_assert(WebTouchEvent::kTouchesLengthCap <= sizeof(int32_t) * 8U, |
| 307 "suboptimal kTouchesLengthCap size"); | 307 "suboptimal kTouchesLengthCap size"); |
| 308 // Ensure that we have a 1-to-1 mapping of pointer ids between touches. | 308 // Ensure that we have a 1-to-1 mapping of pointer ids between touches. |
| 309 std::bitset<WebTouchEvent::kTouchesLengthCap> unmatched_event_touches( | 309 std::bitset<WebTouchEvent::kTouchesLengthCap> unmatched_event_touches( |
| 310 (1 << event.touchesLength) - 1); | 310 (1 << event.touchesLength) - 1); |
| 311 for (unsigned i = 0; i < event_to_coalesce.touchesLength; ++i) { | 311 for (unsigned i = 0; i < event_to_coalesce.touchesLength; ++i) { |
| (...skipping 23 matching lines...) Expand all Loading... |
| 335 if (old_event.touches[i_old].state == blink::WebTouchPoint::StateMoved) | 335 if (old_event.touches[i_old].state == blink::WebTouchPoint::StateMoved) |
| 336 event->touches[i].state = blink::WebTouchPoint::StateMoved; | 336 event->touches[i].state = blink::WebTouchPoint::StateMoved; |
| 337 } | 337 } |
| 338 event->movedBeyondSlopRegion |= old_event.movedBeyondSlopRegion; | 338 event->movedBeyondSlopRegion |= old_event.movedBeyondSlopRegion; |
| 339 event->dispatchType = MergeDispatchTypes(old_event.dispatchType, | 339 event->dispatchType = MergeDispatchTypes(old_event.dispatchType, |
| 340 event_to_coalesce.dispatchType); | 340 event_to_coalesce.dispatchType); |
| 341 } | 341 } |
| 342 | 342 |
| 343 bool CanCoalesce(const WebGestureEvent& event_to_coalesce, | 343 bool CanCoalesce(const WebGestureEvent& event_to_coalesce, |
| 344 const WebGestureEvent& event) { | 344 const WebGestureEvent& event) { |
| 345 if (event.type != event_to_coalesce.type || | 345 if (event.type() != event_to_coalesce.type() || |
| 346 event.sourceDevice != event_to_coalesce.sourceDevice || | 346 event.sourceDevice != event_to_coalesce.sourceDevice || |
| 347 event.modifiers != event_to_coalesce.modifiers) | 347 event.modifiers() != event_to_coalesce.modifiers()) |
| 348 return false; | 348 return false; |
| 349 | 349 |
| 350 if (event.type == WebInputEvent::GestureScrollUpdate) | 350 if (event.type() == WebInputEvent::GestureScrollUpdate) |
| 351 return true; | 351 return true; |
| 352 | 352 |
| 353 // GesturePinchUpdate scales can be combined only if they share a focal point, | 353 // GesturePinchUpdate scales can be combined only if they share a focal point, |
| 354 // e.g., with double-tap drag zoom. | 354 // e.g., with double-tap drag zoom. |
| 355 if (event.type == WebInputEvent::GesturePinchUpdate && | 355 if (event.type() == WebInputEvent::GesturePinchUpdate && |
| 356 event.x == event_to_coalesce.x && event.y == event_to_coalesce.y) | 356 event.x == event_to_coalesce.x && event.y == event_to_coalesce.y) |
| 357 return true; | 357 return true; |
| 358 | 358 |
| 359 return false; | 359 return false; |
| 360 } | 360 } |
| 361 | 361 |
| 362 void Coalesce(const WebGestureEvent& event_to_coalesce, | 362 void Coalesce(const WebGestureEvent& event_to_coalesce, |
| 363 WebGestureEvent* event) { | 363 WebGestureEvent* event) { |
| 364 DCHECK(CanCoalesce(event_to_coalesce, *event)); | 364 DCHECK(CanCoalesce(event_to_coalesce, *event)); |
| 365 if (event->type == WebInputEvent::GestureScrollUpdate) { | 365 if (event->type() == WebInputEvent::GestureScrollUpdate) { |
| 366 event->data.scrollUpdate.deltaX += | 366 event->data.scrollUpdate.deltaX += |
| 367 event_to_coalesce.data.scrollUpdate.deltaX; | 367 event_to_coalesce.data.scrollUpdate.deltaX; |
| 368 event->data.scrollUpdate.deltaY += | 368 event->data.scrollUpdate.deltaY += |
| 369 event_to_coalesce.data.scrollUpdate.deltaY; | 369 event_to_coalesce.data.scrollUpdate.deltaY; |
| 370 DCHECK_EQ( | 370 DCHECK_EQ( |
| 371 event->data.scrollUpdate.previousUpdateInSequencePrevented, | 371 event->data.scrollUpdate.previousUpdateInSequencePrevented, |
| 372 event_to_coalesce.data.scrollUpdate.previousUpdateInSequencePrevented); | 372 event_to_coalesce.data.scrollUpdate.previousUpdateInSequencePrevented); |
| 373 } else if (event->type == WebInputEvent::GesturePinchUpdate) { | 373 } else if (event->type() == WebInputEvent::GesturePinchUpdate) { |
| 374 event->data.pinchUpdate.scale *= event_to_coalesce.data.pinchUpdate.scale; | 374 event->data.pinchUpdate.scale *= event_to_coalesce.data.pinchUpdate.scale; |
| 375 // Ensure the scale remains bounded above 0 and below Infinity so that | 375 // Ensure the scale remains bounded above 0 and below Infinity so that |
| 376 // we can reliably perform operations like log on the values. | 376 // we can reliably perform operations like log on the values. |
| 377 if (event->data.pinchUpdate.scale < numeric_limits<float>::min()) | 377 if (event->data.pinchUpdate.scale < numeric_limits<float>::min()) |
| 378 event->data.pinchUpdate.scale = numeric_limits<float>::min(); | 378 event->data.pinchUpdate.scale = numeric_limits<float>::min(); |
| 379 else if (event->data.pinchUpdate.scale > numeric_limits<float>::max()) | 379 else if (event->data.pinchUpdate.scale > numeric_limits<float>::max()) |
| 380 event->data.pinchUpdate.scale = numeric_limits<float>::max(); | 380 event->data.pinchUpdate.scale = numeric_limits<float>::max(); |
| 381 } | 381 } |
| 382 } | 382 } |
| 383 | 383 |
| 384 } // namespace | 384 } // namespace |
| 385 | 385 |
| 386 bool CanCoalesce(const blink::WebInputEvent& event_to_coalesce, | 386 bool CanCoalesce(const blink::WebInputEvent& event_to_coalesce, |
| 387 const blink::WebInputEvent& event) { | 387 const blink::WebInputEvent& event) { |
| 388 if (blink::WebInputEvent::isGestureEventType(event_to_coalesce.type) && | 388 if (blink::WebInputEvent::isGestureEventType(event_to_coalesce.type()) && |
| 389 blink::WebInputEvent::isGestureEventType(event.type)) { | 389 blink::WebInputEvent::isGestureEventType(event.type())) { |
| 390 return CanCoalesce( | 390 return CanCoalesce( |
| 391 static_cast<const blink::WebGestureEvent&>(event_to_coalesce), | 391 static_cast<const blink::WebGestureEvent&>(event_to_coalesce), |
| 392 static_cast<const blink::WebGestureEvent&>(event)); | 392 static_cast<const blink::WebGestureEvent&>(event)); |
| 393 } | 393 } |
| 394 if (blink::WebInputEvent::isMouseEventType(event_to_coalesce.type) && | 394 if (blink::WebInputEvent::isMouseEventType(event_to_coalesce.type()) && |
| 395 blink::WebInputEvent::isMouseEventType(event.type)) { | 395 blink::WebInputEvent::isMouseEventType(event.type())) { |
| 396 return CanCoalesce( | 396 return CanCoalesce( |
| 397 static_cast<const blink::WebMouseEvent&>(event_to_coalesce), | 397 static_cast<const blink::WebMouseEvent&>(event_to_coalesce), |
| 398 static_cast<const blink::WebMouseEvent&>(event)); | 398 static_cast<const blink::WebMouseEvent&>(event)); |
| 399 } | 399 } |
| 400 if (blink::WebInputEvent::isTouchEventType(event_to_coalesce.type) && | 400 if (blink::WebInputEvent::isTouchEventType(event_to_coalesce.type()) && |
| 401 blink::WebInputEvent::isTouchEventType(event.type)) { | 401 blink::WebInputEvent::isTouchEventType(event.type())) { |
| 402 return CanCoalesce( | 402 return CanCoalesce( |
| 403 static_cast<const blink::WebTouchEvent&>(event_to_coalesce), | 403 static_cast<const blink::WebTouchEvent&>(event_to_coalesce), |
| 404 static_cast<const blink::WebTouchEvent&>(event)); | 404 static_cast<const blink::WebTouchEvent&>(event)); |
| 405 } | 405 } |
| 406 if (event_to_coalesce.type == blink::WebInputEvent::MouseWheel && | 406 if (event_to_coalesce.type() == blink::WebInputEvent::MouseWheel && |
| 407 event.type == blink::WebInputEvent::MouseWheel) { | 407 event.type() == blink::WebInputEvent::MouseWheel) { |
| 408 return CanCoalesce( | 408 return CanCoalesce( |
| 409 static_cast<const blink::WebMouseWheelEvent&>(event_to_coalesce), | 409 static_cast<const blink::WebMouseWheelEvent&>(event_to_coalesce), |
| 410 static_cast<const blink::WebMouseWheelEvent&>(event)); | 410 static_cast<const blink::WebMouseWheelEvent&>(event)); |
| 411 } | 411 } |
| 412 return false; | 412 return false; |
| 413 } | 413 } |
| 414 | 414 |
| 415 void Coalesce(const blink::WebInputEvent& event_to_coalesce, | 415 void Coalesce(const blink::WebInputEvent& event_to_coalesce, |
| 416 blink::WebInputEvent* event) { | 416 blink::WebInputEvent* event) { |
| 417 if (blink::WebInputEvent::isGestureEventType(event_to_coalesce.type) && | 417 if (blink::WebInputEvent::isGestureEventType(event_to_coalesce.type()) && |
| 418 blink::WebInputEvent::isGestureEventType(event->type)) { | 418 blink::WebInputEvent::isGestureEventType(event->type())) { |
| 419 Coalesce(static_cast<const blink::WebGestureEvent&>(event_to_coalesce), | 419 Coalesce(static_cast<const blink::WebGestureEvent&>(event_to_coalesce), |
| 420 static_cast<blink::WebGestureEvent*>(event)); | 420 static_cast<blink::WebGestureEvent*>(event)); |
| 421 return; | 421 return; |
| 422 } | 422 } |
| 423 if (blink::WebInputEvent::isMouseEventType(event_to_coalesce.type) && | 423 if (blink::WebInputEvent::isMouseEventType(event_to_coalesce.type()) && |
| 424 blink::WebInputEvent::isMouseEventType(event->type)) { | 424 blink::WebInputEvent::isMouseEventType(event->type())) { |
| 425 Coalesce(static_cast<const blink::WebMouseEvent&>(event_to_coalesce), | 425 Coalesce(static_cast<const blink::WebMouseEvent&>(event_to_coalesce), |
| 426 static_cast<blink::WebMouseEvent*>(event)); | 426 static_cast<blink::WebMouseEvent*>(event)); |
| 427 return; | 427 return; |
| 428 } | 428 } |
| 429 if (blink::WebInputEvent::isTouchEventType(event_to_coalesce.type) && | 429 if (blink::WebInputEvent::isTouchEventType(event_to_coalesce.type()) && |
| 430 blink::WebInputEvent::isTouchEventType(event->type)) { | 430 blink::WebInputEvent::isTouchEventType(event->type())) { |
| 431 Coalesce(static_cast<const blink::WebTouchEvent&>(event_to_coalesce), | 431 Coalesce(static_cast<const blink::WebTouchEvent&>(event_to_coalesce), |
| 432 static_cast<blink::WebTouchEvent*>(event)); | 432 static_cast<blink::WebTouchEvent*>(event)); |
| 433 return; | 433 return; |
| 434 } | 434 } |
| 435 if (event_to_coalesce.type == blink::WebInputEvent::MouseWheel && | 435 if (event_to_coalesce.type() == blink::WebInputEvent::MouseWheel && |
| 436 event->type == blink::WebInputEvent::MouseWheel) { | 436 event->type() == blink::WebInputEvent::MouseWheel) { |
| 437 Coalesce(static_cast<const blink::WebMouseWheelEvent&>(event_to_coalesce), | 437 Coalesce(static_cast<const blink::WebMouseWheelEvent&>(event_to_coalesce), |
| 438 static_cast<blink::WebMouseWheelEvent*>(event)); | 438 static_cast<blink::WebMouseWheelEvent*>(event)); |
| 439 } | 439 } |
| 440 } | 440 } |
| 441 | 441 |
| 442 blink::WebTouchEvent CreateWebTouchEventFromMotionEvent( | 442 blink::WebTouchEvent CreateWebTouchEventFromMotionEvent( |
| 443 const MotionEvent& event, | 443 const MotionEvent& event, |
| 444 bool moved_beyond_slop_region) { | 444 bool moved_beyond_slop_region) { |
| 445 static_assert(static_cast<int>(MotionEvent::MAX_TOUCH_POINT_COUNT) == | 445 static_assert(static_cast<int>(MotionEvent::MAX_TOUCH_POINT_COUNT) == |
| 446 static_cast<int>(blink::WebTouchEvent::kTouchesLengthCap), | 446 static_cast<int>(blink::WebTouchEvent::kTouchesLengthCap), |
| 447 "inconsistent maximum number of active touch points"); | 447 "inconsistent maximum number of active touch points"); |
| 448 | 448 |
| 449 blink::WebTouchEvent result( | 449 blink::WebTouchEvent result( |
| 450 ToWebTouchEventType(event.GetAction()), | 450 ToWebTouchEventType(event.GetAction()), |
| 451 EventFlagsToWebEventModifiers(event.GetFlags()), | 451 EventFlagsToWebEventModifiers(event.GetFlags()), |
| 452 ui::EventTimeStampToSeconds(event.GetEventTime())); | 452 ui::EventTimeStampToSeconds(event.GetEventTime())); |
| 453 result.dispatchType = result.type == WebInputEvent::TouchCancel | 453 result.dispatchType = result.type() == WebInputEvent::TouchCancel |
| 454 ? WebInputEvent::EventNonBlocking | 454 ? WebInputEvent::EventNonBlocking |
| 455 : WebInputEvent::Blocking; | 455 : WebInputEvent::Blocking; |
| 456 result.movedBeyondSlopRegion = moved_beyond_slop_region; | 456 result.movedBeyondSlopRegion = moved_beyond_slop_region; |
| 457 | 457 |
| 458 // TODO(mustaq): MotionEvent flags seems unrelated, should use | 458 // TODO(mustaq): MotionEvent flags seems unrelated, should use |
| 459 // metaState instead? | 459 // metaState instead? |
| 460 | 460 |
| 461 DCHECK_NE(event.GetUniqueEventId(), 0U); | 461 DCHECK_NE(event.GetUniqueEventId(), 0U); |
| 462 result.uniqueTouchEventId = event.GetUniqueEventId(); | 462 result.uniqueTouchEventId = event.GetUniqueEventId(); |
| 463 result.touchesLength = | 463 result.touchesLength = |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 return TranslateAndScaleWebInputEvent(event, gfx::Vector2d(0, 0), scale); | 646 return TranslateAndScaleWebInputEvent(event, gfx::Vector2d(0, 0), scale); |
| 647 } | 647 } |
| 648 | 648 |
| 649 std::unique_ptr<blink::WebInputEvent> TranslateAndScaleWebInputEvent( | 649 std::unique_ptr<blink::WebInputEvent> TranslateAndScaleWebInputEvent( |
| 650 const blink::WebInputEvent& event, | 650 const blink::WebInputEvent& event, |
| 651 const gfx::Vector2d& delta, | 651 const gfx::Vector2d& delta, |
| 652 float scale) { | 652 float scale) { |
| 653 std::unique_ptr<blink::WebInputEvent> scaled_event; | 653 std::unique_ptr<blink::WebInputEvent> scaled_event; |
| 654 if (scale == 1.f && delta.IsZero()) | 654 if (scale == 1.f && delta.IsZero()) |
| 655 return scaled_event; | 655 return scaled_event; |
| 656 if (event.type == blink::WebMouseEvent::MouseWheel) { | 656 if (event.type() == blink::WebMouseEvent::MouseWheel) { |
| 657 blink::WebMouseWheelEvent* wheel_event = new blink::WebMouseWheelEvent; | 657 blink::WebMouseWheelEvent* wheel_event = new blink::WebMouseWheelEvent; |
| 658 scaled_event.reset(wheel_event); | 658 scaled_event.reset(wheel_event); |
| 659 *wheel_event = static_cast<const blink::WebMouseWheelEvent&>(event); | 659 *wheel_event = static_cast<const blink::WebMouseWheelEvent&>(event); |
| 660 wheel_event->x += delta.x(); | 660 wheel_event->x += delta.x(); |
| 661 wheel_event->y += delta.y(); | 661 wheel_event->y += delta.y(); |
| 662 wheel_event->x *= scale; | 662 wheel_event->x *= scale; |
| 663 wheel_event->y *= scale; | 663 wheel_event->y *= scale; |
| 664 wheel_event->deltaX *= scale; | 664 wheel_event->deltaX *= scale; |
| 665 wheel_event->deltaY *= scale; | 665 wheel_event->deltaY *= scale; |
| 666 wheel_event->wheelTicksX *= scale; | 666 wheel_event->wheelTicksX *= scale; |
| 667 wheel_event->wheelTicksY *= scale; | 667 wheel_event->wheelTicksY *= scale; |
| 668 } else if (blink::WebInputEvent::isMouseEventType(event.type)) { | 668 } else if (blink::WebInputEvent::isMouseEventType(event.type())) { |
| 669 blink::WebMouseEvent* mouse_event = new blink::WebMouseEvent; | 669 blink::WebMouseEvent* mouse_event = new blink::WebMouseEvent; |
| 670 scaled_event.reset(mouse_event); | 670 scaled_event.reset(mouse_event); |
| 671 *mouse_event = static_cast<const blink::WebMouseEvent&>(event); | 671 *mouse_event = static_cast<const blink::WebMouseEvent&>(event); |
| 672 mouse_event->x += delta.x(); | 672 mouse_event->x += delta.x(); |
| 673 mouse_event->y += delta.y(); | 673 mouse_event->y += delta.y(); |
| 674 mouse_event->x *= scale; | 674 mouse_event->x *= scale; |
| 675 mouse_event->y *= scale; | 675 mouse_event->y *= scale; |
| 676 mouse_event->windowX = mouse_event->x; | 676 mouse_event->windowX = mouse_event->x; |
| 677 mouse_event->windowY = mouse_event->y; | 677 mouse_event->windowY = mouse_event->y; |
| 678 mouse_event->movementX *= scale; | 678 mouse_event->movementX *= scale; |
| 679 mouse_event->movementY *= scale; | 679 mouse_event->movementY *= scale; |
| 680 } else if (blink::WebInputEvent::isTouchEventType(event.type)) { | 680 } else if (blink::WebInputEvent::isTouchEventType(event.type())) { |
| 681 blink::WebTouchEvent* touch_event = new blink::WebTouchEvent; | 681 blink::WebTouchEvent* touch_event = new blink::WebTouchEvent; |
| 682 scaled_event.reset(touch_event); | 682 scaled_event.reset(touch_event); |
| 683 *touch_event = static_cast<const blink::WebTouchEvent&>(event); | 683 *touch_event = static_cast<const blink::WebTouchEvent&>(event); |
| 684 for (unsigned i = 0; i < touch_event->touchesLength; i++) { | 684 for (unsigned i = 0; i < touch_event->touchesLength; i++) { |
| 685 touch_event->touches[i].position.x += delta.x(); | 685 touch_event->touches[i].position.x += delta.x(); |
| 686 touch_event->touches[i].position.y += delta.y(); | 686 touch_event->touches[i].position.y += delta.y(); |
| 687 touch_event->touches[i].position.x *= scale; | 687 touch_event->touches[i].position.x *= scale; |
| 688 touch_event->touches[i].position.y *= scale; | 688 touch_event->touches[i].position.y *= scale; |
| 689 touch_event->touches[i].radiusX *= scale; | 689 touch_event->touches[i].radiusX *= scale; |
| 690 touch_event->touches[i].radiusY *= scale; | 690 touch_event->touches[i].radiusY *= scale; |
| 691 } | 691 } |
| 692 } else if (blink::WebInputEvent::isGestureEventType(event.type)) { | 692 } else if (blink::WebInputEvent::isGestureEventType(event.type())) { |
| 693 blink::WebGestureEvent* gesture_event = new blink::WebGestureEvent; | 693 blink::WebGestureEvent* gesture_event = new blink::WebGestureEvent; |
| 694 scaled_event.reset(gesture_event); | 694 scaled_event.reset(gesture_event); |
| 695 *gesture_event = static_cast<const blink::WebGestureEvent&>(event); | 695 *gesture_event = static_cast<const blink::WebGestureEvent&>(event); |
| 696 gesture_event->x += delta.x(); | 696 gesture_event->x += delta.x(); |
| 697 gesture_event->y += delta.y(); | 697 gesture_event->y += delta.y(); |
| 698 gesture_event->x *= scale; | 698 gesture_event->x *= scale; |
| 699 gesture_event->y *= scale; | 699 gesture_event->y *= scale; |
| 700 switch (gesture_event->type) { | 700 switch (gesture_event->type()) { |
| 701 case blink::WebInputEvent::GestureScrollUpdate: | 701 case blink::WebInputEvent::GestureScrollUpdate: |
| 702 gesture_event->data.scrollUpdate.deltaX *= scale; | 702 gesture_event->data.scrollUpdate.deltaX *= scale; |
| 703 gesture_event->data.scrollUpdate.deltaY *= scale; | 703 gesture_event->data.scrollUpdate.deltaY *= scale; |
| 704 break; | 704 break; |
| 705 case blink::WebInputEvent::GestureScrollBegin: | 705 case blink::WebInputEvent::GestureScrollBegin: |
| 706 gesture_event->data.scrollBegin.deltaXHint *= scale; | 706 gesture_event->data.scrollBegin.deltaXHint *= scale; |
| 707 gesture_event->data.scrollBegin.deltaYHint *= scale; | 707 gesture_event->data.scrollBegin.deltaYHint *= scale; |
| 708 break; | 708 break; |
| 709 | 709 |
| 710 case blink::WebInputEvent::GesturePinchUpdate: | 710 case blink::WebInputEvent::GesturePinchUpdate: |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 875 switch (type) { | 875 switch (type) { |
| 876 case blink::WebGestureEvent::GestureScrollUpdate: | 876 case blink::WebGestureEvent::GestureScrollUpdate: |
| 877 case blink::WebGestureEvent::GesturePinchUpdate: | 877 case blink::WebGestureEvent::GesturePinchUpdate: |
| 878 return true; | 878 return true; |
| 879 default: | 879 default: |
| 880 return false; | 880 return false; |
| 881 } | 881 } |
| 882 } | 882 } |
| 883 | 883 |
| 884 } // namespace ui | 884 } // namespace ui |
| OLD | NEW |