Chromium Code Reviews| Index: ui/events/android/motion_event_android.cc |
| diff --git a/ui/events/android/motion_event_android.cc b/ui/events/android/motion_event_android.cc |
| index bf1fc53f8cbfecf0be5362c6744d8114d6a0db3e..252277c2dab4c233ae0d0943f7672160b3981134 100644 |
| --- a/ui/events/android/motion_event_android.cc |
| +++ b/ui/events/android/motion_event_android.cc |
| @@ -78,8 +78,9 @@ int FromAndroidButtonState(int button_state) { |
| return result; |
| } |
| -int FromAndroidMetaState(int meta_state) { |
| +int ToEventFlags(int meta_state, int button_state) { |
| int flags = ui::EF_NONE; |
| + |
| if ((meta_state & AMETA_SHIFT_ON) != 0) |
| flags |= ui::EF_SHIFT_DOWN; |
| if ((meta_state & AMETA_CTRL_ON) != 0) |
| @@ -90,6 +91,22 @@ int FromAndroidMetaState(int meta_state) { |
| flags |= ui::EF_COMMAND_DOWN; |
| if ((meta_state & AMETA_CAPS_LOCK_ON) != 0) |
| flags |= ui::EF_CAPS_LOCK_ON; |
| + |
| + if ((button_state & BUTTON_BACK) != 0) |
| + flags |= ui::EF_BACK_MOUSE_BUTTON; |
| + if ((button_state & BUTTON_FORWARD) != 0) |
| + flags |= ui::EF_FORWARD_MOUSE_BUTTON; |
| + if ((button_state & BUTTON_PRIMARY) != 0) |
| + flags |= ui::EF_LEFT_MOUSE_BUTTON; |
| + if ((button_state & BUTTON_SECONDARY) != 0) |
| + flags |= ui::EF_RIGHT_MOUSE_BUTTON; |
| + if ((button_state & BUTTON_TERTIARY) != 0) |
| + flags |= ui::EF_MIDDLE_MOUSE_BUTTON; |
| + if ((button_state & BUTTON_STYLUS_PRIMARY) != 0) |
| + flags |= ui::EF_LEFT_MOUSE_BUTTON; |
| + if ((button_state & BUTTON_STYLUS_SECONDARY) != 0) |
| + flags |= ui::EF_RIGHT_MOUSE_BUTTON; |
| + |
| return flags; |
| } |
| @@ -159,11 +176,11 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip, |
| jint history_size, |
| jint action_index, |
| jint android_button_state, |
| - jint meta_state, |
| + jint android_meta_state, |
| jfloat raw_offset_x_pixels, |
| jfloat raw_offset_y_pixels, |
| - const Pointer& pointer0, |
| - const Pointer& pointer1) |
| + const Pointer* const pointer0, |
| + const Pointer* const pointer1) |
| : pix_to_dip_(pix_to_dip), |
| cached_time_(FromAndroidTime(time_ms)), |
| cached_action_(FromAndroidAction(android_action)), |
| @@ -171,18 +188,20 @@ MotionEventAndroid::MotionEventAndroid(float pix_to_dip, |
| cached_history_size_(ToValidHistorySize(history_size, cached_action_)), |
| cached_action_index_(action_index), |
| cached_button_state_(FromAndroidButtonState(android_button_state)), |
| - cached_flags_(FromAndroidMetaState(meta_state)), |
| + cached_flags_(ToEventFlags(android_meta_state, android_button_state)), |
| cached_raw_position_offset_(ToDips(raw_offset_x_pixels), |
| ToDips(raw_offset_y_pixels)), |
| unique_event_id_(ui::GetNextTouchEventId()) { |
| - DCHECK_GT(pointer_count, 0); |
| + DCHECK_GT(cached_pointer_count_, 0U); |
| + DCHECK(cached_pointer_count_ == 1 || pointer1); |
| event_.Reset(env, event); |
| if (cached_pointer_count_ > MAX_POINTERS_TO_CACHE || cached_history_size_ > 0) |
| DCHECK(event_.obj()); |
| - cached_pointers_[0] = FromAndroidPointer(pointer0); |
| - cached_pointers_[1] = FromAndroidPointer(pointer1); |
| + cached_pointers_[0] = FromAndroidPointer(*pointer0); |
| + if (cached_pointer_count_ > 1) |
|
aelias_OOO_until_Jul13
2016/10/20 23:26:29
This looks kind of weird (I understand you expect
mustaq
2016/10/21 19:19:08
Just realized that the name is a bit confusing her
aelias_OOO_until_Jul13
2016/10/21 21:26:54
OK then, fine as is.
|
| + cached_pointers_[1] = FromAndroidPointer(*pointer1); |
| } |
| MotionEventAndroid::~MotionEventAndroid() { |