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

Side by Side Diff: ui/events/blink/blink_event_util.cc

Issue 2569273002: Add constructors to WebInputEvents and setters so we can work at cleaning up these public structs. (Closed)
Patch Set: Fix mouse up event sender not modifying modifiers 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
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 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 return std::make_pair(scroll_event, pinch_event); 524 return std::make_pair(scroll_event, pinch_event);
525 } 525 }
526 526
527 blink::WebTouchEvent CreateWebTouchEventFromMotionEvent( 527 blink::WebTouchEvent CreateWebTouchEventFromMotionEvent(
528 const MotionEvent& event, 528 const MotionEvent& event,
529 bool moved_beyond_slop_region) { 529 bool moved_beyond_slop_region) {
530 static_assert(static_cast<int>(MotionEvent::MAX_TOUCH_POINT_COUNT) == 530 static_assert(static_cast<int>(MotionEvent::MAX_TOUCH_POINT_COUNT) ==
531 static_cast<int>(blink::WebTouchEvent::kTouchesLengthCap), 531 static_cast<int>(blink::WebTouchEvent::kTouchesLengthCap),
532 "inconsistent maximum number of active touch points"); 532 "inconsistent maximum number of active touch points");
533 533
534 blink::WebTouchEvent result; 534 blink::WebTouchEvent result(
535 535 ToWebTouchEventType(event.GetAction()),
536 result.type = ToWebTouchEventType(event.GetAction()); 536 EventFlagsToWebEventModifiers(event.GetFlags()),
537 ui::EventTimeStampToSeconds(event.GetEventTime()));
537 result.dispatchType = result.type == WebInputEvent::TouchCancel 538 result.dispatchType = result.type == WebInputEvent::TouchCancel
538 ? WebInputEvent::EventNonBlocking 539 ? WebInputEvent::EventNonBlocking
539 : WebInputEvent::Blocking; 540 : WebInputEvent::Blocking;
540 result.timeStampSeconds = ui::EventTimeStampToSeconds(event.GetEventTime());
541 result.movedBeyondSlopRegion = moved_beyond_slop_region; 541 result.movedBeyondSlopRegion = moved_beyond_slop_region;
542 542
543 result.modifiers = EventFlagsToWebEventModifiers(event.GetFlags());
544 // TODO(mustaq): MotionEvent flags seems unrelated, should use 543 // TODO(mustaq): MotionEvent flags seems unrelated, should use
545 // metaState instead? 544 // metaState instead?
546 545
547 DCHECK_NE(event.GetUniqueEventId(), 0U); 546 DCHECK_NE(event.GetUniqueEventId(), 0U);
548 result.uniqueTouchEventId = event.GetUniqueEventId(); 547 result.uniqueTouchEventId = event.GetUniqueEventId();
549 result.touchesLength = 548 result.touchesLength =
550 std::min(static_cast<unsigned>(event.GetPointerCount()), 549 std::min(static_cast<unsigned>(event.GetPointerCount()),
551 static_cast<unsigned>(WebTouchEvent::kTouchesLengthCap)); 550 static_cast<unsigned>(WebTouchEvent::kTouchesLengthCap));
552 DCHECK_GT(result.touchesLength, 0U); 551 DCHECK_GT(result.touchesLength, 0U);
553 552
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 588
590 return modifiers; 589 return modifiers;
591 } 590 }
592 591
593 WebGestureEvent CreateWebGestureEvent(const GestureEventDetails& details, 592 WebGestureEvent CreateWebGestureEvent(const GestureEventDetails& details,
594 base::TimeTicks timestamp, 593 base::TimeTicks timestamp,
595 const gfx::PointF& location, 594 const gfx::PointF& location,
596 const gfx::PointF& raw_location, 595 const gfx::PointF& raw_location,
597 int flags, 596 int flags,
598 uint32_t unique_touch_event_id) { 597 uint32_t unique_touch_event_id) {
599 WebGestureEvent gesture; 598 WebGestureEvent gesture(WebInputEvent::Undefined,
600 gesture.timeStampSeconds = ui::EventTimeStampToSeconds(timestamp); 599 EventFlagsToWebEventModifiers(flags),
600 ui::EventTimeStampToSeconds(timestamp));
601 gesture.x = gfx::ToFlooredInt(location.x()); 601 gesture.x = gfx::ToFlooredInt(location.x());
602 gesture.y = gfx::ToFlooredInt(location.y()); 602 gesture.y = gfx::ToFlooredInt(location.y());
603 gesture.globalX = gfx::ToFlooredInt(raw_location.x()); 603 gesture.globalX = gfx::ToFlooredInt(raw_location.x());
604 gesture.globalY = gfx::ToFlooredInt(raw_location.y()); 604 gesture.globalY = gfx::ToFlooredInt(raw_location.y());
605 gesture.modifiers = EventFlagsToWebEventModifiers(flags);
606 605
607 switch (details.device_type()) { 606 switch (details.device_type()) {
608 case GestureDeviceType::DEVICE_TOUCHSCREEN: 607 case GestureDeviceType::DEVICE_TOUCHSCREEN:
609 gesture.sourceDevice = blink::WebGestureDeviceTouchscreen; 608 gesture.sourceDevice = blink::WebGestureDeviceTouchscreen;
610 break; 609 break;
611 case GestureDeviceType::DEVICE_TOUCHPAD: 610 case GestureDeviceType::DEVICE_TOUCHPAD:
612 gesture.sourceDevice = blink::WebGestureDeviceTouchpad; 611 gesture.sourceDevice = blink::WebGestureDeviceTouchpad;
613 break; 612 break;
614 case GestureDeviceType::DEVICE_UNKNOWN: 613 case GestureDeviceType::DEVICE_UNKNOWN:
615 NOTREACHED() << "Unknown device type is not allowed"; 614 NOTREACHED() << "Unknown device type is not allowed";
616 gesture.sourceDevice = blink::WebGestureDeviceUninitialized; 615 gesture.sourceDevice = blink::WebGestureDeviceUninitialized;
617 break; 616 break;
618 } 617 }
619 618
620 gesture.uniqueTouchEventId = unique_touch_event_id; 619 gesture.uniqueTouchEventId = unique_touch_event_id;
621 620
622 switch (details.type()) { 621 switch (details.type()) {
623 case ET_GESTURE_SHOW_PRESS: 622 case ET_GESTURE_SHOW_PRESS:
624 gesture.type = WebInputEvent::GestureShowPress; 623 gesture.setType(WebInputEvent::GestureShowPress);
625 gesture.data.showPress.width = details.bounding_box_f().width(); 624 gesture.data.showPress.width = details.bounding_box_f().width();
626 gesture.data.showPress.height = details.bounding_box_f().height(); 625 gesture.data.showPress.height = details.bounding_box_f().height();
627 break; 626 break;
628 case ET_GESTURE_DOUBLE_TAP: 627 case ET_GESTURE_DOUBLE_TAP:
629 gesture.type = WebInputEvent::GestureDoubleTap; 628 gesture.setType(WebInputEvent::GestureDoubleTap);
630 DCHECK_EQ(1, details.tap_count()); 629 DCHECK_EQ(1, details.tap_count());
631 gesture.data.tap.tapCount = details.tap_count(); 630 gesture.data.tap.tapCount = details.tap_count();
632 gesture.data.tap.width = details.bounding_box_f().width(); 631 gesture.data.tap.width = details.bounding_box_f().width();
633 gesture.data.tap.height = details.bounding_box_f().height(); 632 gesture.data.tap.height = details.bounding_box_f().height();
634 break; 633 break;
635 case ET_GESTURE_TAP: 634 case ET_GESTURE_TAP:
636 gesture.type = WebInputEvent::GestureTap; 635 gesture.setType(WebInputEvent::GestureTap);
637 DCHECK_GE(details.tap_count(), 1); 636 DCHECK_GE(details.tap_count(), 1);
638 gesture.data.tap.tapCount = details.tap_count(); 637 gesture.data.tap.tapCount = details.tap_count();
639 gesture.data.tap.width = details.bounding_box_f().width(); 638 gesture.data.tap.width = details.bounding_box_f().width();
640 gesture.data.tap.height = details.bounding_box_f().height(); 639 gesture.data.tap.height = details.bounding_box_f().height();
641 break; 640 break;
642 case ET_GESTURE_TAP_UNCONFIRMED: 641 case ET_GESTURE_TAP_UNCONFIRMED:
643 gesture.type = WebInputEvent::GestureTapUnconfirmed; 642 gesture.setType(WebInputEvent::GestureTapUnconfirmed);
644 DCHECK_EQ(1, details.tap_count()); 643 DCHECK_EQ(1, details.tap_count());
645 gesture.data.tap.tapCount = details.tap_count(); 644 gesture.data.tap.tapCount = details.tap_count();
646 gesture.data.tap.width = details.bounding_box_f().width(); 645 gesture.data.tap.width = details.bounding_box_f().width();
647 gesture.data.tap.height = details.bounding_box_f().height(); 646 gesture.data.tap.height = details.bounding_box_f().height();
648 break; 647 break;
649 case ET_GESTURE_LONG_PRESS: 648 case ET_GESTURE_LONG_PRESS:
650 gesture.type = WebInputEvent::GestureLongPress; 649 gesture.setType(WebInputEvent::GestureLongPress);
651 gesture.data.longPress.width = details.bounding_box_f().width(); 650 gesture.data.longPress.width = details.bounding_box_f().width();
652 gesture.data.longPress.height = details.bounding_box_f().height(); 651 gesture.data.longPress.height = details.bounding_box_f().height();
653 break; 652 break;
654 case ET_GESTURE_LONG_TAP: 653 case ET_GESTURE_LONG_TAP:
655 gesture.type = WebInputEvent::GestureLongTap; 654 gesture.setType(WebInputEvent::GestureLongTap);
656 gesture.data.longPress.width = details.bounding_box_f().width(); 655 gesture.data.longPress.width = details.bounding_box_f().width();
657 gesture.data.longPress.height = details.bounding_box_f().height(); 656 gesture.data.longPress.height = details.bounding_box_f().height();
658 break; 657 break;
659 case ET_GESTURE_TWO_FINGER_TAP: 658 case ET_GESTURE_TWO_FINGER_TAP:
660 gesture.type = blink::WebInputEvent::GestureTwoFingerTap; 659 gesture.setType(blink::WebInputEvent::GestureTwoFingerTap);
661 gesture.data.twoFingerTap.firstFingerWidth = details.first_finger_width(); 660 gesture.data.twoFingerTap.firstFingerWidth = details.first_finger_width();
662 gesture.data.twoFingerTap.firstFingerHeight = 661 gesture.data.twoFingerTap.firstFingerHeight =
663 details.first_finger_height(); 662 details.first_finger_height();
664 break; 663 break;
665 case ET_GESTURE_SCROLL_BEGIN: 664 case ET_GESTURE_SCROLL_BEGIN:
666 gesture.type = WebInputEvent::GestureScrollBegin; 665 gesture.setType(WebInputEvent::GestureScrollBegin);
667 gesture.data.scrollBegin.pointerCount = details.touch_points(); 666 gesture.data.scrollBegin.pointerCount = details.touch_points();
668 gesture.data.scrollBegin.deltaXHint = details.scroll_x_hint(); 667 gesture.data.scrollBegin.deltaXHint = details.scroll_x_hint();
669 gesture.data.scrollBegin.deltaYHint = details.scroll_y_hint(); 668 gesture.data.scrollBegin.deltaYHint = details.scroll_y_hint();
670 break; 669 break;
671 case ET_GESTURE_SCROLL_UPDATE: 670 case ET_GESTURE_SCROLL_UPDATE:
672 gesture.type = WebInputEvent::GestureScrollUpdate; 671 gesture.setType(WebInputEvent::GestureScrollUpdate);
673 gesture.data.scrollUpdate.deltaX = details.scroll_x(); 672 gesture.data.scrollUpdate.deltaX = details.scroll_x();
674 gesture.data.scrollUpdate.deltaY = details.scroll_y(); 673 gesture.data.scrollUpdate.deltaY = details.scroll_y();
675 gesture.data.scrollUpdate.previousUpdateInSequencePrevented = 674 gesture.data.scrollUpdate.previousUpdateInSequencePrevented =
676 details.previous_scroll_update_in_sequence_prevented(); 675 details.previous_scroll_update_in_sequence_prevented();
677 break; 676 break;
678 case ET_GESTURE_SCROLL_END: 677 case ET_GESTURE_SCROLL_END:
679 gesture.type = WebInputEvent::GestureScrollEnd; 678 gesture.setType(WebInputEvent::GestureScrollEnd);
680 break; 679 break;
681 case ET_SCROLL_FLING_START: 680 case ET_SCROLL_FLING_START:
682 gesture.type = WebInputEvent::GestureFlingStart; 681 gesture.setType(WebInputEvent::GestureFlingStart);
683 gesture.data.flingStart.velocityX = details.velocity_x(); 682 gesture.data.flingStart.velocityX = details.velocity_x();
684 gesture.data.flingStart.velocityY = details.velocity_y(); 683 gesture.data.flingStart.velocityY = details.velocity_y();
685 break; 684 break;
686 case ET_SCROLL_FLING_CANCEL: 685 case ET_SCROLL_FLING_CANCEL:
687 gesture.type = WebInputEvent::GestureFlingCancel; 686 gesture.setType(WebInputEvent::GestureFlingCancel);
688 break; 687 break;
689 case ET_GESTURE_PINCH_BEGIN: 688 case ET_GESTURE_PINCH_BEGIN:
690 gesture.type = WebInputEvent::GesturePinchBegin; 689 gesture.setType(WebInputEvent::GesturePinchBegin);
691 break; 690 break;
692 case ET_GESTURE_PINCH_UPDATE: 691 case ET_GESTURE_PINCH_UPDATE:
693 gesture.type = WebInputEvent::GesturePinchUpdate; 692 gesture.setType(WebInputEvent::GesturePinchUpdate);
694 gesture.data.pinchUpdate.scale = details.scale(); 693 gesture.data.pinchUpdate.scale = details.scale();
695 break; 694 break;
696 case ET_GESTURE_PINCH_END: 695 case ET_GESTURE_PINCH_END:
697 gesture.type = WebInputEvent::GesturePinchEnd; 696 gesture.setType(WebInputEvent::GesturePinchEnd);
698 break; 697 break;
699 case ET_GESTURE_TAP_CANCEL: 698 case ET_GESTURE_TAP_CANCEL:
700 gesture.type = WebInputEvent::GestureTapCancel; 699 gesture.setType(WebInputEvent::GestureTapCancel);
701 break; 700 break;
702 case ET_GESTURE_TAP_DOWN: 701 case ET_GESTURE_TAP_DOWN:
703 gesture.type = WebInputEvent::GestureTapDown; 702 gesture.setType(WebInputEvent::GestureTapDown);
704 gesture.data.tapDown.width = details.bounding_box_f().width(); 703 gesture.data.tapDown.width = details.bounding_box_f().width();
705 gesture.data.tapDown.height = details.bounding_box_f().height(); 704 gesture.data.tapDown.height = details.bounding_box_f().height();
706 break; 705 break;
707 case ET_GESTURE_BEGIN: 706 case ET_GESTURE_BEGIN:
708 case ET_GESTURE_END: 707 case ET_GESTURE_END:
709 case ET_GESTURE_SWIPE: 708 case ET_GESTURE_SWIPE:
710 // The caller is responsible for discarding these gestures appropriately. 709 // The caller is responsible for discarding these gestures appropriately.
711 gesture.type = WebInputEvent::Undefined; 710 gesture.setType(WebInputEvent::Undefined);
712 break; 711 break;
713 default: 712 default:
714 NOTREACHED() << "EventType provided wasn't a valid gesture event: " 713 NOTREACHED() << "EventType provided wasn't a valid gesture event: "
715 << details.type(); 714 << details.type();
716 } 715 }
717 716
718 return gesture; 717 return gesture;
719 } 718 }
720 719
721 WebGestureEvent CreateWebGestureEventFromGestureEventData( 720 WebGestureEvent CreateWebGestureEventFromGestureEventData(
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
961 switch (type) { 960 switch (type) {
962 case blink::WebGestureEvent::GestureScrollUpdate: 961 case blink::WebGestureEvent::GestureScrollUpdate:
963 case blink::WebGestureEvent::GesturePinchUpdate: 962 case blink::WebGestureEvent::GesturePinchUpdate:
964 return true; 963 return true;
965 default: 964 default:
966 return false; 965 return false;
967 } 966 }
968 } 967 }
969 968
970 } // namespace ui 969 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698