Chromium Code Reviews| Index: ui/events/event.cc |
| diff --git a/ui/events/event.cc b/ui/events/event.cc |
| index 6d2df8d8f7224bcee06a4ef01f79a8fc49f083bd..b19b653893a6cdd1c5e5d77fd57c52eee66bf378 100644 |
| --- a/ui/events/event.cc |
| +++ b/ui/events/event.cc |
| @@ -457,6 +457,7 @@ MouseEvent::MouseEvent(const base::NativeEvent& native_event) |
| : LocatedEvent(native_event), |
| changed_button_flags_(GetChangedMouseButtonFlagsFromNative(native_event)), |
| pointer_details_(GetMousePointerDetailsFromNative(native_event)) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| latency()->AddLatencyNumberWithTimestamp( |
| INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, 0, |
| base::TimeTicks::FromInternalValue(time_stamp().ToInternalValue()), 1); |
| @@ -469,6 +470,7 @@ MouseEvent::MouseEvent(const PointerEvent& pointer_event) |
| : LocatedEvent(pointer_event), |
| changed_button_flags_(pointer_event.changed_button_flags()), |
| pointer_details_(pointer_event.pointer_details()) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| DCHECK(pointer_event.IsMousePointerEvent()); |
| switch (pointer_event.type()) { |
| case ET_POINTER_DOWN: |
| @@ -525,6 +527,7 @@ MouseEvent::MouseEvent(EventType type, |
| changed_button_flags_(changed_button_flags), |
| pointer_details_(PointerDetails(EventPointerType::POINTER_TYPE_MOUSE)) { |
| DCHECK_NE(ET_MOUSEWHEEL, type); |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); |
| if (this->type() == ET_MOUSE_MOVED && IsAnyButton()) |
| SetType(ET_MOUSE_DRAGGED); |
| @@ -654,12 +657,14 @@ void MouseEvent::SetClickCount(int click_count) { |
| MouseWheelEvent::MouseWheelEvent(const base::NativeEvent& native_event) |
| : MouseEvent(native_event), |
| offset_(GetMouseWheelOffset(native_event)) { |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| } |
| MouseWheelEvent::MouseWheelEvent(const ScrollEvent& scroll_event) |
| : MouseEvent(scroll_event), |
| offset_(gfx::ToRoundedInt(scroll_event.x_offset()), |
| gfx::ToRoundedInt(scroll_event.y_offset())) { |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| SetType(ET_MOUSEWHEEL); |
| } |
| @@ -674,12 +679,14 @@ MouseWheelEvent::MouseWheelEvent(const MouseEvent& mouse_event, |
| int x_offset, |
| int y_offset) |
| : MouseEvent(mouse_event), offset_(x_offset, y_offset) { |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| SetType(ET_MOUSEWHEEL); |
| } |
| MouseWheelEvent::MouseWheelEvent(const MouseWheelEvent& mouse_wheel_event) |
| : MouseEvent(mouse_wheel_event), |
| offset_(mouse_wheel_event.offset()) { |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| DCHECK_EQ(ET_MOUSEWHEEL, type()); |
| } |
| @@ -700,6 +707,7 @@ MouseWheelEvent::MouseWheelEvent(const gfx::Vector2d& offset, |
| // DCHECK for type to enforce that we use MouseWheelEvent() to create |
| // a MouseWheelEvent. |
| SetType(ui::ET_MOUSEWHEEL); |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| } |
| #if defined(OS_WIN) |
| @@ -722,6 +730,7 @@ TouchEvent::TouchEvent(const base::NativeEvent& native_event) |
| may_cause_scrolling_(false), |
| should_remove_native_touch_id_mapping_(false), |
| pointer_details_(GetTouchPointerDetailsFromNative(native_event)) { |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| latency()->AddLatencyNumberWithTimestamp( |
| INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, 0, |
| base::TimeTicks::FromInternalValue(time_stamp().ToInternalValue()), 1); |
| @@ -740,6 +749,7 @@ TouchEvent::TouchEvent(const PointerEvent& pointer_event) |
| may_cause_scrolling_(false), |
| should_remove_native_touch_id_mapping_(false), |
| pointer_details_(pointer_event.pointer_details()) { |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| DCHECK(pointer_event.IsTouchPointerEvent()); |
| switch (pointer_event.type()) { |
| case ET_POINTER_DOWN: |
| @@ -778,6 +788,7 @@ TouchEvent::TouchEvent(EventType type, |
| may_cause_scrolling_(false), |
| should_remove_native_touch_id_mapping_(false), |
| pointer_details_(PointerDetails(EventPointerType::POINTER_TYPE_TOUCH)) { |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); |
| } |
| @@ -806,6 +817,7 @@ TouchEvent::TouchEvent(EventType type, |
| force, |
| /* tilt_x */ 0.0f, |
| /* tilt_y */ 0.0f)) { |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| latency()->AddLatencyNumber(INPUT_EVENT_LATENCY_UI_COMPONENT, 0, 0); |
| FixRotationAngle(); |
| } |
| @@ -886,7 +898,14 @@ PointerEvent::PointerEvent(const PointerEvent& pointer_event) |
| : LocatedEvent(pointer_event), |
| pointer_id_(pointer_event.pointer_id()), |
| changed_button_flags_(pointer_event.changed_button_flags()), |
| - details_(pointer_event.pointer_details()) {} |
| + details_(pointer_event.pointer_details()) { |
| + if (details_.pointer_type == EventPointerType::POINTER_TYPE_TOUCH) |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| + else if (pointer_event.type() == ET_POINTER_WHEEL_CHANGED) |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| + else |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| +} |
| PointerEvent::PointerEvent(const MouseEvent& mouse_event) |
| : LocatedEvent(mouse_event), |
| @@ -894,6 +913,7 @@ PointerEvent::PointerEvent(const MouseEvent& mouse_event) |
| changed_button_flags_(mouse_event.changed_button_flags()), |
| details_(mouse_event.pointer_details()) { |
| DCHECK(CanConvertFrom(mouse_event)); |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| switch (mouse_event.type()) { |
| case ET_MOUSE_PRESSED: |
| SetType(ET_POINTER_DOWN); |
| @@ -920,6 +940,7 @@ PointerEvent::PointerEvent(const MouseEvent& mouse_event) |
| SetType(ET_POINTER_WHEEL_CHANGED); |
| details_ = PointerDetails(EventPointerType::POINTER_TYPE_MOUSE, |
| mouse_event.AsMouseWheelEvent()->offset()); |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| break; |
| case ET_MOUSE_CAPTURE_CHANGED: |
| @@ -957,6 +978,7 @@ PointerEvent::PointerEvent(const TouchEvent& touch_event) |
| default: |
| NOTREACHED(); |
| } |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| } |
| PointerEvent::PointerEvent(EventType type, |
| @@ -974,7 +996,14 @@ PointerEvent::PointerEvent(EventType type, |
| flags), |
| pointer_id_(pointer_id), |
| changed_button_flags_(changed_button_flags), |
| - details_(pointer_details) {} |
| + details_(pointer_details) { |
| + if (details_.pointer_type == EventPointerType::POINTER_TYPE_TOUCH) |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| + else if (type == ET_POINTER_WHEEL_CHANGED) |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| + else |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| +} |
| const int PointerEvent::kMousePointerId = std::numeric_limits<int32_t>::max(); |
| @@ -1023,13 +1052,16 @@ bool KeyEvent::IsRepeated(const KeyEvent& event) { |
| } |
| KeyEvent::KeyEvent(const base::NativeEvent& native_event) |
| - : KeyEvent(native_event, EventFlagsFromNative(native_event)) {} |
| + : KeyEvent(native_event, EventFlagsFromNative(native_event)) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| +} |
| KeyEvent::KeyEvent(const base::NativeEvent& native_event, int event_flags) |
| : Event(native_event, EventTypeFromNative(native_event), event_flags), |
| key_code_(KeyboardCodeFromNative(native_event)), |
| code_(CodeFromNative(native_event)), |
| is_char_(IsCharFromNative(native_event)) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| if (IsRepeated(*this)) |
| set_flags(flags() | ui::EF_IS_REPEAT); |
| @@ -1051,6 +1083,7 @@ KeyEvent::KeyEvent(EventType type, |
| : Event(type, EventTimeForNow(), flags), |
| key_code_(key_code), |
| code_(UsLayoutKeyboardCodeToDomCode(key_code)) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| } |
| KeyEvent::KeyEvent(EventType type, |
| @@ -1060,6 +1093,7 @@ KeyEvent::KeyEvent(EventType type, |
| : Event(type, EventTimeForNow(), flags), |
| key_code_(key_code), |
| code_(code) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| } |
| KeyEvent::KeyEvent(EventType type, |
| @@ -1071,7 +1105,9 @@ KeyEvent::KeyEvent(EventType type, |
| : Event(type, time_stamp, flags), |
| key_code_(key_code), |
| code_(code), |
| - key_(key) {} |
| + key_(key) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| +} |
| KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags) |
| : Event(ET_KEY_PRESSED, EventTimeForNow(), flags), |
| @@ -1079,6 +1115,7 @@ KeyEvent::KeyEvent(base::char16 character, KeyboardCode key_code, int flags) |
| code_(DomCode::NONE), |
| is_char_(true), |
| key_(DomKey::FromCharacter(character)) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
|
sky
2016/09/13 00:12:18
Why do you have to explicitly set the source type
sahel
2016/09/13 14:29:53
The default is UNKNOWN, OTHER is for the cases tha
|
| } |
| KeyEvent::KeyEvent(const KeyEvent& rhs) |
| @@ -1087,6 +1124,7 @@ KeyEvent::KeyEvent(const KeyEvent& rhs) |
| code_(rhs.code_), |
| is_char_(rhs.is_char_), |
| key_(rhs.key_) { |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| } |
| KeyEvent& KeyEvent::operator=(const KeyEvent& rhs) { |
| @@ -1097,6 +1135,7 @@ KeyEvent& KeyEvent::operator=(const KeyEvent& rhs) { |
| key_ = rhs.key_; |
| is_char_ = rhs.is_char_; |
| } |
| + latency()->set_source_event_type(ui::SourceEventType::OTHER); |
| return *this; |
| } |
| @@ -1273,6 +1312,7 @@ ScrollEvent::ScrollEvent(const base::NativeEvent& native_event) |
| NOTREACHED() << "Unexpected event type " << type() |
| << " when constructing a ScrollEvent."; |
| } |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| } |
| ScrollEvent::ScrollEvent(EventType type, |
| @@ -1291,6 +1331,7 @@ ScrollEvent::ScrollEvent(EventType type, |
| y_offset_ordinal_(y_offset_ordinal), |
| finger_count_(finger_count) { |
| CHECK(IsScrollEvent()); |
| + latency()->set_source_event_type(ui::SourceEventType::WHEEL); |
| } |
| void ScrollEvent::Scale(const float factor) { |
| @@ -1315,7 +1356,9 @@ GestureEvent::GestureEvent(float x, |
| time_stamp, |
| flags | EF_FROM_TOUCH), |
| details_(details), |
| - unique_touch_event_id_(unique_touch_event_id) {} |
| + unique_touch_event_id_(unique_touch_event_id) { |
| + latency()->set_source_event_type(ui::SourceEventType::TOUCH); |
| +} |
| GestureEvent::~GestureEvent() { |
| } |