Bug 1265510 - Don't start a scroll snap animation if we're already at the destination. r=kats draft
authorBotond Ballo <botond@mozilla.com>
Mon, 18 Apr 2016 20:05:17 -0400
changeset 352916 1489e01293d25cab74edc688f938bb174371b773
parent 352736 d53b301a14e1dfa05324072a7159796a4f5e24c7
child 518783 c64db723fcf1bc4dbf59633796278899ac43d32c
push id15840
push userbballo@mozilla.com
push dateTue, 19 Apr 2016 00:08:18 +0000
reviewerskats
bugs1265510
milestone48.0a1
Bug 1265510 - Don't start a scroll snap animation if we're already at the destination. r=kats MozReview-Commit-ID: EP7s414NQ4K
gfx/layers/apz/src/AsyncPanZoomController.cpp
--- 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());
 }