Bug 951793 - Obey overscroll-behavior for any overscroll effect. r=kats

MozReview-Commit-ID: HyATx3aCmmm

--HG--
extra : rebase_source : 43f8d69a8e10f778179e77679cb7581b95d25b87
This commit is contained in:
Botond Ballo 2017-11-03 16:07:46 -04:00
Родитель bfb1cd4ddd
Коммит c956e489bc
1 изменённых файлов: 14 добавлений и 3 удалений

Просмотреть файл

@ -2809,8 +2809,8 @@ void AsyncPanZoomController::OverscrollBy(ParentLayerPoint& aOverscroll) {
bool xConsumed = FuzzyEqualsAdditive(aOverscroll.x, 0.0f, COORDINATE_EPSILON);
bool yConsumed = FuzzyEqualsAdditive(aOverscroll.y, 0.0f, COORDINATE_EPSILON);
bool shouldOverscrollX = xCanScroll && !xConsumed;
bool shouldOverscrollY = yCanScroll && !yConsumed;
bool shouldOverscrollX = xCanScroll && !xConsumed && mX.OverscrollBehaviorAllowsOverscrollEffect();
bool shouldOverscrollY = yCanScroll && !yConsumed && mY.OverscrollBehaviorAllowsOverscrollEffect();
mOverscrollEffect->ConsumeOverscroll(aOverscroll, shouldOverscrollX, shouldOverscrollY);
}
@ -2892,7 +2892,18 @@ void AsyncPanZoomController::HandleFlingOverscroll(const ParentLayerPoint& aVelo
aScrolledApzc};
ParentLayerPoint residualVelocity = treeManagerLocal->DispatchFling(this, handoffState);
if (!IsZero(residualVelocity) && IsPannable() && gfxPrefs::APZOverscrollEnabled()) {
mOverscrollEffect->HandleFlingOverscroll(residualVelocity);
// Obey overscroll-behavior.
RecursiveMutexAutoLock lock(mRecursiveMutex);
if (!mX.OverscrollBehaviorAllowsOverscrollEffect()) {
residualVelocity.x = 0;
}
if (!mY.OverscrollBehaviorAllowsOverscrollEffect()) {
residualVelocity.y = 0;
}
if (!IsZero(residualVelocity)) {
mOverscrollEffect->HandleFlingOverscroll(residualVelocity);
}
}
}
}