Bug 1361880 - Prevent toolbar from animating when drag threshold has not been reached r=botond
MozReview-Commit-ID: 14WKMWdjjsf
--- 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