Bug 1265510 - Don't start a scroll snap animation if we're already at the destination. r=kats
MozReview-Commit-ID: EP7s414NQ4K
--- a/gfx/layers/apz/src/AsyncPanZoomController.cpp
+++ b/gfx/layers/apz/src/AsyncPanZoomController.cpp
@@ -3977,17 +3977,19 @@ Maybe<CSSPoint> AsyncPanZoomController::
return Some(scrollRange.ClampPoint(cssSnapPoint));
}
return Nothing();
}
void AsyncPanZoomController::ScrollSnapNear(const CSSPoint& aDestination) {
if (Maybe<CSSPoint> snapPoint =
FindSnapPointNear(aDestination, nsIScrollableFrame::DEVICE_PIXELS)) {
- SmoothScrollTo(*snapPoint);
+ if (*snapPoint != mFrameMetrics.GetScrollOffset()) {
+ SmoothScrollTo(*snapPoint);
+ }
}
}
void AsyncPanZoomController::ScrollSnap() {
ReentrantMonitorAutoEnter lock(mMonitor);
ScrollSnapNear(mFrameMetrics.GetScrollOffset());
}