diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 22e86c77f3d78..754d6e9f7b5ee 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -2416,7 +2416,11 @@ public final class WebViewCore { if (mIsRestored) { mInitialViewState.mIsRestored = true; mInitialViewState.mViewScale = mRestoredScale; - mInitialViewState.mTextWrapScale = mRestoredTextWrapScale; + if (mRestoredTextWrapScale > 0) { + mInitialViewState.mTextWrapScale = mRestoredTextWrapScale; + } else { + mInitialViewState.mTextWrapScale = mInitialViewState.mViewScale; + } } else { if (mViewportInitialScale > 0) { mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale = @@ -2535,9 +2539,11 @@ public final class WebViewCore { // called by JNI private void restoreScale(float scale, float textWrapScale) { if (mBrowserFrame.firstLayoutDone() == false) { - mIsRestored = true; + mIsRestored = scale > 0; mRestoredScale = scale; - mRestoredTextWrapScale = textWrapScale; + if (mSettings.getUseWideViewPort()) { + mRestoredTextWrapScale = textWrapScale; + } } } diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index e829571d531fd..f599dbae057c9 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -1114,7 +1114,7 @@ class ZoomManager { float scale; if (mInitialScale > 0) { scale = mInitialScale; - } else if (viewState.mIsRestored) { + } else if (viewState.mIsRestored || viewState.mViewScale > 0) { scale = (viewState.mViewScale > 0) ? viewState.mViewScale : overviewScale; mTextWrapScale = (viewState.mTextWrapScale > 0)