From 7eeadaf018bc67952d04f4be74df9c4a5cefc57a Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Sun, 1 Apr 2012 14:30:35 -0400 Subject: [PATCH] Bug 740539 - Account for possible mismatch in zoom levels when handling Viewport:PageSize. r=Cwiiis --- mobile/android/base/gfx/GeckoLayerClient.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mobile/android/base/gfx/GeckoLayerClient.java b/mobile/android/base/gfx/GeckoLayerClient.java index 4094c9e3348..d4bb4ac76a0 100644 --- a/mobile/android/base/gfx/GeckoLayerClient.java +++ b/mobile/android/base/gfx/GeckoLayerClient.java @@ -211,8 +211,12 @@ public class GeckoLayerClient implements GeckoEventResponder, mLayerController.abortPanZoomAnimation(); break; case PAGE_SIZE: + // adjust the page dimensions to account for differences in zoom + // between the rendered content (which is what Gecko tells us) + // and our zoom level (which may have diverged). + float scaleFactor = oldMetrics.zoomFactor / messageMetrics.getZoomFactor(); newMetrics = new ViewportMetrics(oldMetrics); - newMetrics.setPageSize(messageMetrics.getPageSize()); + newMetrics.setPageSize(messageMetrics.getPageSize().scale(scaleFactor)); break; }