Merge "Fix restore of view and text wrap scales." into ics-mr1
This commit is contained in:
committed by
Android (Google) Code Review
commit
ade26e2e38
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user