Bug 1266154 - 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 354330 b121c2436d0f49269e1c0a40339ec55b08a3c87a
parent 352736 d53b301a14e1dfa05324072a7159796a4f5e24c7
child 518975 2ae79ffa48ac29258e66b47a6f0a0170d7c9f721
push id16048
push userbballo@mozilla.com
push dateWed, 20 Apr 2016 17:44:53 +0000
reviewerskats
bugs1266154
milestone48.0a1
Bug 1266154 - 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());
 }