Some mobile sites, like m.www.yahoo.com, slashdot.org (iPhone version),

have a bigger minPrefWidth than the screen width. So we don't want to force
the minZoomScale to be same as defaultScale. Otherwise we won't be able to
zoom out in these sites.

Fix http://b/issue?id=2090718
This commit is contained in:
Grace Kloba
2009-09-04 13:15:59 -07:00
parent 93a751d6ad
commit 3c72fff035
2 changed files with 22 additions and 11 deletions

View File

@@ -5203,8 +5203,19 @@ public class WebView extends AbsoluteLayout
mInZoomOverview = false;
mLastScale = restoreState.mTextWrapScale;
if (restoreState.mMinScale == 0) {
mMinZoomScale = DEFAULT_MIN_ZOOM_SCALE;
mMinZoomScaleFixed = false;
if (restoreState.mMobileSite) {
if (draw.mMinPrefWidth > draw.mViewPoint.x) {
mMinZoomScale = (float) viewWidth
/ draw.mMinPrefWidth;
mMinZoomScaleFixed = false;
} else {
mMinZoomScale = mDefaultScale;
mMinZoomScaleFixed = true;
}
} else {
mMinZoomScale = DEFAULT_MIN_ZOOM_SCALE;
mMinZoomScaleFixed = false;
}
} else {
mMinZoomScale = restoreState.mMinScale;
mMinZoomScaleFixed = true;
@@ -5217,11 +5228,11 @@ public class WebView extends AbsoluteLayout
setNewZoomScale(mLastScale, false);
setContentScrollTo(restoreState.mScrollX,
restoreState.mScrollY);
if (!ENABLE_DOUBLETAP_ZOOM
|| !settings.getLoadWithOverviewMode()) {
} else {
if (useWideViewport
&& restoreState.mViewScale == 0) {
if (ENABLE_DOUBLETAP_ZOOM && useWideViewport
&& settings.getLoadWithOverviewMode()) {
if (restoreState.mViewScale == 0
|| (restoreState.mMobileSite
&& mMinZoomScale < mDefaultScale)) {
mInZoomOverview = true;
}
}

View File

@@ -1572,7 +1572,10 @@ final class WebViewCore {
// layout.
draw.mViewPoint = new Point(mCurrentViewWidth, mCurrentViewHeight);
if (WebView.ENABLE_DOUBLETAP_ZOOM && mSettings.getUseWideViewPort()) {
draw.mMinPrefWidth = Math.max(DEFAULT_VIEWPORT_WIDTH,
draw.mMinPrefWidth = Math.max(
mViewportWidth == -1 ? DEFAULT_VIEWPORT_WIDTH
: (mViewportWidth == 0 ? mCurrentViewWidth
: mViewportWidth),
nativeGetContentMinPrefWidth());
}
if (mRestoreState != null) {
@@ -1859,9 +1862,6 @@ final class WebViewCore {
if (mViewportInitialScale == 0) {
mViewportInitialScale = WebView.DEFAULT_SCALE_PERCENT;
}
if (mViewportMinimumScale == 0) {
mViewportMinimumScale = WebView.DEFAULT_SCALE_PERCENT;
}
}
if (mViewportUserScalable == false) {
mViewportInitialScale = WebView.DEFAULT_SCALE_PERCENT;