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

Side by Side Diff: ui/events/android/motion_event_android.cc

Issue 2700623003: Make sure that the pressure is always 0 for pointerup events (Closed)
Patch Set: pressure Created 3 years, 10 months 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ui/events/android/motion_event_android.h" 5 #include "ui/events/android/motion_event_android.h"
6 6
7 #include <android/input.h> 7 #include <android/input.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 10
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 222
223 uint32_t MotionEventAndroid::GetUniqueEventId() const { 223 uint32_t MotionEventAndroid::GetUniqueEventId() const {
224 return unique_event_id_; 224 return unique_event_id_;
225 } 225 }
226 226
227 MotionEventAndroid::Action MotionEventAndroid::GetAction() const { 227 MotionEventAndroid::Action MotionEventAndroid::GetAction() const {
228 return cached_action_; 228 return cached_action_;
229 } 229 }
230 230
231 int MotionEventAndroid::GetActionIndex() const { 231 int MotionEventAndroid::GetActionIndex() const {
232 DCHECK(cached_action_ == ACTION_POINTER_UP || 232 DCHECK(cached_action_ == MotionEvent::ACTION_POINTER_UP ||
233 cached_action_ == ACTION_POINTER_DOWN) 233 cached_action_ == MotionEvent::ACTION_POINTER_DOWN)
234 << "Invalid action for GetActionIndex(): " << cached_action_; 234 << "Invalid action for GetActionIndex(): " << cached_action_;
235 DCHECK_GE(cached_action_index_, 0); 235 DCHECK_GE(cached_action_index_, 0);
236 DCHECK_LT(cached_action_index_, static_cast<int>(cached_pointer_count_)); 236 DCHECK_LT(cached_action_index_, static_cast<int>(cached_pointer_count_));
237 return cached_action_index_; 237 return cached_action_index_;
238 } 238 }
239 239
240 size_t MotionEventAndroid::GetPointerCount() const { 240 size_t MotionEventAndroid::GetPointerCount() const {
241 return cached_pointer_count_; 241 return cached_pointer_count_;
242 } 242 }
243 243
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 AttachCurrentThread(), event_, pointer_index)); 297 AttachCurrentThread(), event_, pointer_index));
298 } 298 }
299 299
300 float MotionEventAndroid::GetPressure(size_t pointer_index) const { 300 float MotionEventAndroid::GetPressure(size_t pointer_index) const {
301 DCHECK_LT(pointer_index, cached_pointer_count_); 301 DCHECK_LT(pointer_index, cached_pointer_count_);
302 // Note that this early return is a special case exercised only in testing, as 302 // Note that this early return is a special case exercised only in testing, as
303 // caching the pressure values is not a worthwhile optimization (they're 303 // caching the pressure values is not a worthwhile optimization (they're
304 // accessed at most once per event instance). 304 // accessed at most once per event instance).
305 if (!event_.obj()) 305 if (!event_.obj())
306 return 0.f; 306 return 0.f;
307 if (cached_action_ == MotionEvent::ACTION_UP)
308 return 0.f;
307 return Java_MotionEvent_getPressureF_I(AttachCurrentThread(), event_, 309 return Java_MotionEvent_getPressureF_I(AttachCurrentThread(), event_,
308 pointer_index); 310 pointer_index);
309 } 311 }
310 312
311 float MotionEventAndroid::GetTilt(size_t pointer_index) const { 313 float MotionEventAndroid::GetTilt(size_t pointer_index) const {
312 DCHECK_LT(pointer_index, cached_pointer_count_); 314 DCHECK_LT(pointer_index, cached_pointer_count_);
313 if (pointer_index < MAX_POINTERS_TO_CACHE) 315 if (pointer_index < MAX_POINTERS_TO_CACHE)
314 return cached_pointers_[pointer_index].tilt; 316 return cached_pointers_[pointer_index].tilt;
315 if (!event_.obj()) 317 if (!event_.obj())
316 return 0.f; 318 return 0.f;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 gfx::PointF(ToDips(pointer.pos_x_pixels), ToDips(pointer.pos_y_pixels)); 382 gfx::PointF(ToDips(pointer.pos_x_pixels), ToDips(pointer.pos_y_pixels));
381 result.touch_major = ToDips(pointer.touch_major_pixels); 383 result.touch_major = ToDips(pointer.touch_major_pixels);
382 result.touch_minor = ToDips(pointer.touch_minor_pixels); 384 result.touch_minor = ToDips(pointer.touch_minor_pixels);
383 result.orientation = ToValidFloat(pointer.orientation_rad); 385 result.orientation = ToValidFloat(pointer.orientation_rad);
384 result.tilt = ToValidFloat(pointer.tilt_rad); 386 result.tilt = ToValidFloat(pointer.tilt_rad);
385 result.tool_type = FromAndroidToolType(pointer.tool_type); 387 result.tool_type = FromAndroidToolType(pointer.tool_type);
386 return result; 388 return result;
387 } 389 }
388 390
389 } // namespace content 391 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698