Skip to content

Commit ade26e2

Browse files
mghiwareAndroid (Google) Code Review
authored andcommitted
Merge "Fix restore of view and text wrap scales." into ics-mr1
2 parents 7165b92 + f0e96d5 commit ade26e2

File tree

2 files changed

+13
-18
lines changed

2 files changed

+13
-18
lines changed

core/java/android/webkit/WebViewCore.java

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ public final class WebViewCore {
124124
*/
125125
private int mViewportDensityDpi = -1;
126126

127+
private boolean mIsRestored = false;
127128
private float mRestoredScale = 0;
128129
private float mRestoredTextWrapScale = 0;
129130
private int mRestoredX = 0;
@@ -2254,7 +2255,7 @@ private void didFirstLayout(boolean standardLoad) {
22542255

22552256
if (mWebView == null) return;
22562257

2257-
boolean updateViewState = standardLoad || mRestoredScale > 0;
2258+
boolean updateViewState = standardLoad || mIsRestored;
22582259
setupViewport(updateViewState);
22592260
// if updateRestoreState is true, ViewManager.postReadyToDrawAll() will
22602261
// be called after the WebView updates its state. If updateRestoreState
@@ -2271,6 +2272,7 @@ private void didFirstLayout(boolean standardLoad) {
22712272

22722273
// reset the scroll position, the restored offset and scales
22732274
mRestoredX = mRestoredY = 0;
2275+
mIsRestored = false;
22742276
mRestoredScale = mRestoredTextWrapScale = 0;
22752277
}
22762278

@@ -2399,14 +2401,10 @@ private void setupViewport(boolean updateViewState) {
23992401
mInitialViewState.mScrollX = mRestoredX;
24002402
mInitialViewState.mScrollY = mRestoredY;
24012403
mInitialViewState.mMobileSite = (0 == mViewportWidth);
2402-
if (mRestoredScale > 0) {
2404+
if (mIsRestored) {
24032405
mInitialViewState.mIsRestored = true;
24042406
mInitialViewState.mViewScale = mRestoredScale;
2405-
if (mRestoredTextWrapScale > 0) {
2406-
mInitialViewState.mTextWrapScale = mRestoredTextWrapScale;
2407-
} else {
2408-
mInitialViewState.mTextWrapScale = mInitialViewState.mViewScale;
2409-
}
2407+
mInitialViewState.mTextWrapScale = mRestoredTextWrapScale;
24102408
} else {
24112409
if (mViewportInitialScale > 0) {
24122410
mInitialViewState.mViewScale = mInitialViewState.mTextWrapScale =
@@ -2525,14 +2523,9 @@ private void setupViewport(boolean updateViewState) {
25252523
// called by JNI
25262524
private void restoreScale(float scale, float textWrapScale) {
25272525
if (mBrowserFrame.firstLayoutDone() == false) {
2528-
// If restored scale and textWrapScale are 0, set them to
2529-
// overview and reading level scale respectively.
2530-
mRestoredScale = (scale <= 0.0)
2531-
? mWebView.getZoomOverviewScale() : scale;
2532-
if (mSettings.getUseWideViewPort()) {
2533-
mRestoredTextWrapScale = (textWrapScale <= 0.0)
2534-
? mWebView.getReadingLevelScale() : textWrapScale;
2535-
}
2526+
mIsRestored = true;
2527+
mRestoredScale = scale;
2528+
mRestoredTextWrapScale = textWrapScale;
25362529
}
25372530
}
25382531

core/java/android/webkit/ZoomManager.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,9 +1121,11 @@ public void onFirstLayout(WebViewCore.DrawData drawData) {
11211121
if (mInitialScale > 0) {
11221122
scale = mInitialScale;
11231123
mTextWrapScale = scale;
1124-
} else if (viewState.mViewScale > 0) {
1125-
mTextWrapScale = viewState.mTextWrapScale;
1126-
scale = viewState.mViewScale;
1124+
} else if (viewState.mIsRestored) {
1125+
scale = (viewState.mViewScale > 0)
1126+
? viewState.mViewScale : overviewScale;
1127+
mTextWrapScale = (viewState.mTextWrapScale > 0)
1128+
? viewState.mTextWrapScale : getReadingLevelScale();
11271129
} else {
11281130
scale = overviewScale;
11291131
if (!settings.getUseWideViewPort()

0 commit comments

Comments
 (0)