summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/webkit/WebView.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 9d5cedd..4b5f94b 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -513,7 +513,7 @@ public class WebView extends AbsoluteLayout
private boolean mMinZoomScaleFixed = true;
// initial scale in percent. 0 means using default.
- private int mInitialScale = 0;
+ private int mInitialScaleInPercent = 0;
// while in the zoom overview mode, the page's width is fully fit to the
// current window. The page is alive, in another words, you can click to
@@ -1607,7 +1607,7 @@ public class WebView extends AbsoluteLayout
* @param scaleInPercent The initial scale in percent.
*/
public void setInitialScale(int scaleInPercent) {
- mInitialScale = scaleInPercent;
+ mInitialScaleInPercent = scaleInPercent;
}
/**
@@ -3745,6 +3745,13 @@ public class WebView extends AbsoluteLayout
mMinZoomScale = Math.min(1.0f, (float) getViewWidth()
/ (mDrawHistory ? mHistoryPicture.getWidth()
: mZoomOverviewWidth));
+ if (mInitialScaleInPercent > 0) {
+ // limit the minZoomScale to the initialScale if it is set
+ float initialScale = mInitialScaleInPercent / 100.0f;
+ if (mMinZoomScale > initialScale) {
+ mMinZoomScale = initialScale;
+ }
+ }
}
// we always force, in case our height changed, in which case we still
@@ -5099,7 +5106,9 @@ public class WebView extends AbsoluteLayout
WebViewCore.RestoreState restoreState = draw.mRestoreState;
if (restoreState != null) {
mInZoomOverview = false;
- mLastScale = restoreState.mTextWrapScale;
+ mLastScale = mInitialScaleInPercent > 0
+ ? mInitialScaleInPercent / 100.0f
+ : restoreState.mTextWrapScale;
if (restoreState.mMinScale == 0) {
if (restoreState.mMobileSite) {
if (draw.mMinPrefWidth >