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

Unified Diff: content/browser/renderer_host/overscroll_controller.h

Issue 15742013: overscroll: Do not overscroll if the beginning of a scroll was consumed. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 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: content/browser/renderer_host/overscroll_controller.h
diff --git a/content/browser/renderer_host/overscroll_controller.h b/content/browser/renderer_host/overscroll_controller.h
index 6f82d0af3803bb3c04a5ffa17c6cf9ee4c5c516c..71d6e9a878e206a04bbf99e34c0f926727148815 100644
--- a/content/browser/renderer_host/overscroll_controller.h
+++ b/content/browser/renderer_host/overscroll_controller.h
@@ -62,6 +62,14 @@ class OverscrollController {
private:
friend class MockRenderWidgetHost;
+ // Different scrolling states.
+ enum ScrollState {
+ STATE_UNKNOWN,
+ STATE_PENDING,
+ STATE_CONTENT_SCROLLING,
+ STATE_OVERSCROLLING,
+ };
+
// Returns true if the event indicates that the in-progress overscroll gesture
// can now be completed.
bool DispatchEventCompletesAction(
@@ -96,6 +104,13 @@ class OverscrollController {
// The current state of overscroll gesture.
OverscrollMode overscroll_mode_;
+ // Used to keep track of the scrolling state.
+ // If scrolling starts, and some scroll events are consumed at the beginning
+ // of the scroll (i.e. some content on the web-page was scrolled), then do not
+ // process any of the subsequent scroll events for generating overscroll
+ // gestures.
+ ScrollState scroll_state_;
+
// The amount of overscroll in progress. These values are invalid when
// |overscroll_mode_| is set to OVERSCROLL_NONE.
float overscroll_delta_x_;

Powered by Google App Engine
This is Rietveld 408576698