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

Unified Diff: ui/events/gesture_detection/scale_gesture_detector.cc

Issue 409563004: Fix gesture debugging (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actually add the changes... Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: ui/events/gesture_detection/scale_gesture_detector.cc
diff --git a/ui/events/gesture_detection/scale_gesture_detector.cc b/ui/events/gesture_detection/scale_gesture_detector.cc
index e7605c70373f41615126fb2bb3e33deda9214035..13aa1a4b5cc077c10c9a9000cc2dabcf06054165 100644
--- a/ui/events/gesture_detection/scale_gesture_detector.cc
+++ b/ui/events/gesture_detection/scale_gesture_detector.cc
@@ -32,8 +32,7 @@ const float kScaleFactor = .5f;
// versions found in Android's ViewConfiguration.
ScaleGestureDetector::Config::Config()
: min_scaling_touch_major(48),
- min_scaling_span(100),
- use_touch_major_in_span(false),
+ min_scaling_span(200),
quick_scale_enabled(true),
min_pinch_update_span_delta(0) {
}
@@ -70,7 +69,6 @@ ScaleGestureDetector::ScaleGestureDetector(const Config& config,
in_progress_(0),
span_slop_(0),
min_span_(0),
- use_touch_major_in_span_(config.use_touch_major_in_span),
touch_upper_(0),
touch_lower_(0),
touch_history_last_accepted_(0),
@@ -84,7 +82,8 @@ ScaleGestureDetector::ScaleGestureDetector(const Config& config,
DCHECK(listener_);
span_slop_ = (config.gesture_detector_config.touch_slop + kSlopEpsilon) * 2;
touch_min_major_ = config.min_scaling_touch_major;
- touch_max_major_ = std::min(config.min_scaling_span, 2.f * touch_min_major_);
+ touch_max_major_ = std::min(config.min_scaling_span / std::sqrt(2.f),
+ 2.f * touch_min_major_);
min_span_ = config.min_scaling_span + kSlopEpsilon;
ResetTouchHistory();
SetQuickScaleEnabled(config.quick_scale_enabled);
@@ -162,8 +161,7 @@ bool ScaleGestureDetector::OnTouchEvent(const MotionEvent& event) {
focus_y = sum_y * inverse_unreleased_point_count;
}
- if (use_touch_major_in_span_)
- AddTouchHistory(event);
+ AddTouchHistory(event);
// Determine average deviation from focal point.
float dev_sum_x = 0, dev_sum_y = 0;
@@ -176,8 +174,7 @@ bool ScaleGestureDetector::OnTouchEvent(const MotionEvent& event) {
}
// Convert the resulting diameter into a radius, to include touch
// radius in overall deviation.
- const float touch_radius =
- use_touch_major_in_span_ ? touch_history_last_accepted_ / 2 : 0;
+ const float touch_radius = touch_history_last_accepted_ / 2;
const float dev_x = dev_sum_x * inverse_unreleased_point_count + touch_radius;
const float dev_y = dev_sum_y * inverse_unreleased_point_count + touch_radius;
@@ -212,7 +209,7 @@ bool ScaleGestureDetector::OnTouchEvent(const MotionEvent& event) {
}
const float min_span = InDoubleTapMode() ? span_slop_ : min_span_;
- if (!in_progress_ && span >= min_span && (InDoubleTapMode() || count > 1) &&
+ if (!in_progress_ && span >= min_span &&
(was_in_progress || std::abs(span - initial_span_) > span_slop_)) {
prev_span_x_ = curr_span_x_ = span_x;
prev_span_y_ = curr_span_y_ = span_y;

Powered by Google App Engine
This is Rietveld 408576698