Index: content/browser/renderer_host/input/gesture_event_queue.h |
diff --git a/content/browser/renderer_host/input/gesture_event_queue.h b/content/browser/renderer_host/input/gesture_event_queue.h |
index 208b2de457c9c56d3eb8f5cb1453e89a310a5558..693d25d6aa02311d89703ad8fe83acf7efa6f07b 100644 |
--- a/content/browser/renderer_host/input/gesture_event_queue.h |
+++ b/content/browser/renderer_host/input/gesture_event_queue.h |
@@ -93,9 +93,8 @@ class CONTENT_EXPORT GestureEventQueue { |
blink::WebInputEvent::Type type, |
const ui::LatencyInfo& latency); |
- // Sets the state of the |fling_in_progress_| field to indicate that a fling |
- // is definitely not in progress. |
- void FlingHasBeenHalted(); |
+ // Notify the queue that a gesture fling animation in the renderer has ended. |
+ void DidStopFlinging(); |
// Returns the |TouchpadTapSuppressionController| instance. |
TouchpadTapSuppressionController* GetTouchpadTapSuppressionController(); |
@@ -107,6 +106,8 @@ class CONTENT_EXPORT GestureEventQueue { |
debouncing_deferral_queue_.empty(); |
} |
+ int active_fling_count() const { return active_fling_count_; } |
+ |
void set_debounce_interval_time_ms_for_testing(int interval_ms) { |
debounce_interval_ = base::TimeDelta::FromMilliseconds(interval_ms); |
} |
@@ -158,9 +159,10 @@ class CONTENT_EXPORT GestureEventQueue { |
// The receiver of all forwarded gesture events. |
GestureEventQueueClient* client_; |
- // True if a GestureFlingStart is in progress on the renderer or |
- // queued without a subsequent queued GestureFlingCancel event. |
- bool fling_in_progress_; |
+ // Whether there are any active flings in the renderer. As the fling |
+ // end notification is asynchronous, we use a count rather than a boolean |
+ // to avoid races in bookkeeping when starting a new fling. |
+ int active_fling_count_; |
// True if a GestureScrollUpdate sequence is in progress. |
bool scrolling_in_progress_; |