From 4fe9002ec03223f053168170cb7074c5eada920a Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Wed, 7 Aug 2013 12:34:16 -0400 Subject: [PATCH] Bug 901339 - Fix the focal point when zooming in and out. r=BenWa --- gfx/layers/ipc/AsyncPanZoomController.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gfx/layers/ipc/AsyncPanZoomController.cpp b/gfx/layers/ipc/AsyncPanZoomController.cpp index 4c9512f682fc..5243dc33d332 100644 --- a/gfx/layers/ipc/AsyncPanZoomController.cpp +++ b/gfx/layers/ipc/AsyncPanZoomController.cpp @@ -1155,12 +1155,13 @@ bool AsyncPanZoomController::SampleContentTransformForFrame(const TimeStamp& aSa ViewTransform AsyncPanZoomController::GetCurrentAsyncTransform() { ReentrantMonitorAutoEnter lock(mMonitor); - LayerPoint metricsScrollOffset; + CSSPoint lastPaintScrollOffset; if (mLastContentPaintMetrics.IsScrollable()) { - metricsScrollOffset = mLastContentPaintMetrics.GetScrollOffsetInLayerPixels(); + lastPaintScrollOffset = mLastContentPaintMetrics.mScrollOffset; } CSSToScreenScale localScale = mFrameMetrics.CalculateResolution(); - LayerPoint translation = mFrameMetrics.GetScrollOffsetInLayerPixels() - metricsScrollOffset; + LayerPoint translation = (mFrameMetrics.mScrollOffset - lastPaintScrollOffset) + * mLastContentPaintMetrics.LayersPixelsPerCSSPixel(); return ViewTransform(-translation, localScale / mLastContentPaintMetrics.mDevPixelsPerCSSPixel); }