Bug 1361880 - Prevent toolbar from animating when drag threshold has not been reached r=botond draft
authorRandall Barker <rbarker@mozilla.com>
Wed, 03 May 2017 10:48:41 -0700
changeset 573403 f01151e8f338f267b8e8a341071f1adbb904635c
parent 572846 c2898a7cc72105800408bc0ec873552da0c7a432
child 573406 e439f1dafac1d275d265e53a7f242d3912ed0f77
push id57387
push userbmo:rbarker@mozilla.com
push dateFri, 05 May 2017 18:43:39 +0000
reviewersbotond
bugs1361880
milestone55.0a1
Bug 1361880 - Prevent toolbar from animating when drag threshold has not been reached r=botond MozReview-Commit-ID: 14WKMWdjjsf
gfx/layers/apz/src/AndroidDynamicToolbarAnimator.cpp
--- a/gfx/layers/apz/src/AndroidDynamicToolbarAnimator.cpp
+++ b/gfx/layers/apz/src/AndroidDynamicToolbarAnimator.cpp
@@ -566,32 +566,39 @@ AndroidDynamicToolbarAnimator::HandleTou
     // If there still isn't a direction, default to show just to be safe
     if (!direction) {
       direction = MOVE_TOOLBAR_DOWN;
     }
   }
   mControllerStartTouch = 0;
   mControllerPreviousTouch = 0;
   mControllerTotalDistance = 0;
+  bool dragThresholdReached = mControllerDragThresholdReached;
   mControllerDragThresholdReached = false;
   mControllerLastEventTimeStamp = 0;
   bool cancelTouchTracking = mControllerCancelTouchTracking;
   mControllerCancelTouchTracking = false;
 
   // Animation is in progress, bail out.
   if (aCurrentToolbarState == eToolbarAnimating) {
     return;
   }
 
   // Received a UI thread request to show or hide the snapshot during a touch.
   // This overrides the touch event so just return.
   if (cancelTouchTracking) {
     return;
   }
 
+  // The drag threshold has not been reach and the toolbar is either completely visible or completely hidden.
+  if (!dragThresholdReached && ((mControllerToolbarHeight == mControllerMaxToolbarHeight) || (mControllerToolbarHeight == 0))) {
+    ShowToolbarIfNotVisible(aCurrentToolbarState);
+    return;
+  }
+
   // The toolbar is already where it needs to be so just return.
   if (((direction == MOVE_TOOLBAR_DOWN) && (mControllerToolbarHeight == mControllerMaxToolbarHeight)) ||
       ((direction == MOVE_TOOLBAR_UP) && (mControllerToolbarHeight == 0))) {
     ShowToolbarIfNotVisible(aCurrentToolbarState);
     return;
   }
 
   // Don't animate up if not scrolling root content. Even though ShowToolbarIfNotVisible checks if