Merge "Fix restore of view and text wrap scales." into ics-mr1

This commit is contained in:
Mangesh Ghiware
2011-10-27 16:11:32 -07:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 18 deletions

View File

@@ -124,6 +124,7 @@ public final class WebViewCore {
*/ */
private int mViewportDensityDpi = -1; private int mViewportDensityDpi = -1;
private boolean mIsRestored = false;
private float mRestoredScale = 0; private float mRestoredScale = 0;
private float mRestoredTextWrapScale = 0; private float mRestoredTextWrapScale = 0;
private int mRestoredX = 0; private int mRestoredX = 0;
@@ -2254,7 +2255,7 @@ public final class WebViewCore {
if (mWebView == null) return; if (mWebView == null) return;
boolean updateViewState = standardLoad || mRestoredScale > 0; boolean updateViewState = standardLoad || mIsRestored;
setupViewport(updateViewState); setupViewport(updateViewState);
// if updateRestoreState is true, ViewManager.postReadyToDrawAll() will // if updateRestoreState is true, ViewManager.postReadyToDrawAll() will
// be called after the WebView updates its state. If updateRestoreState // be called after the WebView updates its state. If updateRestoreState
@@ -2271,6 +2272,7 @@ public final class WebViewCore {
// reset the scroll position, the restored offset and scales // reset the scroll position, the restored offset and scales
mRestoredX = mRestoredY = 0; mRestoredX = mRestoredY = 0;
mIsRestored = false;
mRestoredScale = mRestoredTextWrapScale = 0; mRestoredScale = mRestoredTextWrapScale = 0;
} }
@@ -2399,14 +2401,10 @@ public final class WebViewCore {
mInitialViewState.mScrollX = mRestoredX; mInitialViewState.mScrollX = mRestoredX;
mInitialViewState.mScrollY = mRestoredY; mInitialViewState.mScrollY = mRestoredY;
mInitialViewState.mMobileSite = (0 == mViewportWidth); mInitialViewState.mMobileSite = (0 == mViewportWidth);
if (mRestoredScale > 0) { if (mIsRestored) {
mInitialViewState.mIsRestored = true; mInitialViewState.mIsRestored = true;
mInitialViewState.mViewScale = mRestoredScale; mInitialViewState.mViewScale = mRestoredScale;
if (mRestoredTextWrapScale > 0) { mInitialViewState.mTextWrapScale = mRestoredTextWrapScale;
mInitialViewState.mTextWrapScale = mRestoredTextWrapScale;
} else {
mInitialViewState.mTextWrapScale = mInitialViewState.mViewScale;
}
} else { } else {
if (mViewportInitialScale > 0) { if (mViewportInitialScale > 0) {
mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale = mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale =
@@ -2525,14 +2523,9 @@ public final class WebViewCore {
// called by JNI // called by JNI
private void restoreScale(float scale, float textWrapScale) { private void restoreScale(float scale, float textWrapScale) {
if (mBrowserFrame.firstLayoutDone() == false) { if (mBrowserFrame.firstLayoutDone() == false) {
// If restored scale and textWrapScale are 0, set them to mIsRestored = true;
// overview and reading level scale respectively. mRestoredScale = scale;
mRestoredScale = (scale <= 0.0) mRestoredTextWrapScale = textWrapScale;
? mWebView.getZoomOverviewScale() : scale;
if (mSettings.getUseWideViewPort()) {
mRestoredTextWrapScale = (textWrapScale <= 0.0)
? mWebView.getReadingLevelScale() : textWrapScale;
}
} }
} }

View File

@@ -1121,9 +1121,11 @@ class ZoomManager {
if (mInitialScale > 0) { if (mInitialScale > 0) {
scale = mInitialScale; scale = mInitialScale;
mTextWrapScale = scale; mTextWrapScale = scale;
} else if (viewState.mViewScale > 0) { } else if (viewState.mIsRestored) {
mTextWrapScale = viewState.mTextWrapScale; scale = (viewState.mViewScale > 0)
scale = viewState.mViewScale; ? viewState.mViewScale : overviewScale;
mTextWrapScale = (viewState.mTextWrapScale > 0)
? viewState.mTextWrapScale : getReadingLevelScale();
} else { } else {
scale = overviewScale; scale = overviewScale;
if (!settings.getUseWideViewPort() if (!settings.getUseWideViewPort()