From a7699fea04a5ef313e9f555537f2ff5595cd1291 Mon Sep 17 00:00:00 2001 From: "Shimeng (Simon) Wang" Date: Mon, 14 Feb 2011 16:44:08 -0800 Subject: [PATCH] Keep mobile site's text wrap scale unchanged. issue: 3376306 Change-Id: Ifce67215486f09eadb34c30c085b0e502a5a8b05 --- core/java/android/webkit/ZoomManager.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index efbcd5811db8e..4597727f77ae5 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -846,22 +846,29 @@ class ZoomManager { public void onNewPicture(WebViewCore.DrawData drawData) { final int viewWidth = mWebView.getViewWidth(); final boolean zoomOverviewWidthChanged = setupZoomOverviewWidth(drawData, viewWidth); + final float newZoomOverviewScale = getZoomOverviewScale(); WebSettings settings = mWebView.getSettings(); if (zoomOverviewWidthChanged && settings.isNarrowColumnLayout() && settings.getUseFixedViewport() && (mInitialZoomOverview || mInZoomOverview)) { - mTextWrapScale = getReadingLevelScale(); + // Keep mobile site's text wrap scale unchanged. For mobile sites, + // the text wrap scale is the same as zoom overview scale, which is 1.0f. + if (exceedsMinScaleIncrement(mTextWrapScale, 1.0f) || + exceedsMinScaleIncrement(newZoomOverviewScale, 1.0f)) { + mTextWrapScale = getReadingLevelScale(); + } else { + mTextWrapScale = newZoomOverviewScale; + } } - final float zoomOverviewScale = getZoomOverviewScale(); if (!mMinZoomScaleFixed) { - mMinZoomScale = zoomOverviewScale; + mMinZoomScale = newZoomOverviewScale; } // fit the content width to the current view. Ignore the rounding error case. if (!mWebView.drawHistory() && (mInitialZoomOverview || (mInZoomOverview && Math.abs((viewWidth * mInvActualScale) - mZoomOverviewWidth) > 1))) { mInitialZoomOverview = false; - setZoomScale(zoomOverviewScale, !willScaleTriggerZoom(mTextWrapScale) && + setZoomScale(newZoomOverviewScale, !willScaleTriggerZoom(mTextWrapScale) && !mWebView.getSettings().getUseFixedViewport()); } }