diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 122a717f76431..47629c4434e85 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -7169,6 +7169,14 @@ public class WebView extends AbsoluteLayout return mZoomManager.getDefaultScale(); } + /** + * Return the overview scale of the WebView + * @return The overview scale. + */ + float getZoomOverviewScale() { + return mZoomManager.getZoomOverviewScale(); + } + /** * @return TRUE if the WebView can be zoomed in. */ diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 48359d44daca2..470e843f5868c 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -2512,10 +2512,13 @@ public final class WebViewCore { // called by JNI private void restoreScale(float scale, float textWrapScale) { if (mBrowserFrame.firstLayoutDone() == false) { - final float defaultScale = mWebView.getDefaultZoomScale(); - mRestoredScale = (scale <= 0.0) ? defaultScale : scale; + // If restored scale and textWrapScale are 0, set them to + // overview and reading level scale respectively. + mRestoredScale = (scale <= 0.0) + ? mWebView.getZoomOverviewScale() : scale; if (mSettings.getUseWideViewPort()) { - mRestoredTextWrapScale = (textWrapScale <= 0.0) ? defaultScale : textWrapScale; + mRestoredTextWrapScale = (textWrapScale <= 0.0) + ? mWebView.getReadingLevelScale() : textWrapScale; } } } diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index 7ca6aeba87fee..7f526e7e7c1bd 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -1128,12 +1128,6 @@ class ZoomManager { mTextWrapScale = Math.max(mTextWrapScale, overviewScale); } reflowText = exceedsMinScaleIncrement(mTextWrapScale, scale); - } else { - // In case of restored scale, treat defaultScale as overview since - // it usually means the previous scale is not saved. - if (scale == mDefaultScale && settings.getLoadWithOverviewMode()) { - scale = overviewScale; - } } mInitialZoomOverview = settings.getLoadWithOverviewMode() && !exceedsMinScaleIncrement(scale, overviewScale);