Chromium Code Reviews| Index: content/browser/renderer_host/input/touch_event_queue.cc |
| diff --git a/content/browser/renderer_host/input/touch_event_queue.cc b/content/browser/renderer_host/input/touch_event_queue.cc |
| index a6d8729f49c23f8df07303ebe487928a28d8cbb8..3251446a5c80f6b4a6284d912fc2aad869b66560 100644 |
| --- a/content/browser/renderer_host/input/touch_event_queue.cc |
| +++ b/content/browser/renderer_host/input/touch_event_queue.cc |
| @@ -21,6 +21,11 @@ using ui::LatencyInfo; |
| namespace content { |
| namespace { |
| +// Using a small epsilon when comparing slop distances allows pixel perfect |
| +// slop determination when using fractional DPI coordinates (assuming the slop |
|
tdresser
2014/04/09 14:00:01
fractional DPI -> fractional DIP
jdduke (slow)
2014/04/10 22:04:53
Done.
|
| +// region and DPI scale are reasonably proportioned). |
| +const float SLOP_EPSILON = .05f; |
| + |
| typedef std::vector<TouchEventWithLatencyInfo> WebTouchEventWithLatencyList; |
| TouchEventWithLatencyInfo ObtainCancelEventForTouchEvent( |
| @@ -167,6 +172,8 @@ class TouchEventQueue::TouchTimeoutHandler { |
| // Provides touchmove slop suppression for a single touch that remains within |
| // a given slop region, unless the touchstart is preventDefault'ed. |
| +// TODO(jdduke): Use a flag bundled with each TouchEvent declaring whether it |
| +// has exceeded the slop region, removing duplicated slop determination logic. |
| class TouchEventQueue::TouchMoveSlopSuppressor { |
| public: |
| TouchMoveSlopSuppressor(double slop_suppression_length_dips) |
| @@ -288,8 +295,8 @@ TouchEventQueue::TouchEventQueue(TouchEventQueueClient* client, |
| dispatching_touch_(false), |
| touch_filtering_state_(TOUCH_FILTERING_STATE_DEFAULT), |
| ack_timeout_enabled_(false), |
| - touchmove_slop_suppressor_( |
| - new TouchMoveSlopSuppressor(touchmove_suppression_length_dips)), |
| + touchmove_slop_suppressor_(new TouchMoveSlopSuppressor( |
| + touchmove_suppression_length_dips + SLOP_EPSILON)), |
| absorbing_touch_moves_(false), |
| touch_scrolling_mode_(mode) { |
| DCHECK(client); |