summaryrefslogtreecommitdiff
path: root/core/java/android/webkit/ZoomManager.java
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2011-06-10 13:42:32 -0700
committerShimeng (Simon) Wang <swang@google.com>2011-06-10 13:42:32 -0700
commite86cdeb86c1158c00986ea700109c289e7686853 (patch)
tree2861e662f49b2d5d7cfe76fbd46c91873a252e34 /core/java/android/webkit/ZoomManager.java
parent82a077043fe8ea8b7bc3575afc3f0f68b7fc193b (diff)
Fix reflow for mobile sites.
1. use correct mDefaultScale instead of 1.0f. 2. ignore mMinZoomScaleFixed in case of using wide viewport since sometimes mobile site will impose a min scale while the web content will make it bigger than overview scale. issue: 4257815 Change-Id: Ib4ca9b4dab8585827081a32432076eeeaedecd38
Diffstat (limited to 'core/java/android/webkit/ZoomManager.java')
-rw-r--r--core/java/android/webkit/ZoomManager.java17
1 files changed, 8 insertions, 9 deletions
diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java
index fe6fb2f33f39..883656bd6fae 100644
--- a/core/java/android/webkit/ZoomManager.java
+++ b/core/java/android/webkit/ZoomManager.java
@@ -991,16 +991,16 @@ class ZoomManager {
settings.getUseFixedViewport() &&
(mInitialZoomOverview || mInZoomOverview)) {
// Keep mobile site's text wrap scale unchanged. For mobile sites,
- // the text wrap scale is the same as zoom overview scale, which is 1.0f.
- if (exceedsMinScaleIncrement(mTextWrapScale, 1.0f) ||
- exceedsMinScaleIncrement(newZoomOverviewScale, 1.0f)) {
+ // the text wrap scale is the same as zoom overview scale.
+ if (exceedsMinScaleIncrement(mTextWrapScale, mDefaultScale) ||
+ exceedsMinScaleIncrement(newZoomOverviewScale, mDefaultScale)) {
mTextWrapScale = getReadingLevelScale();
} else {
mTextWrapScale = newZoomOverviewScale;
}
}
- if (!mMinZoomScaleFixed) {
+ if (!mMinZoomScaleFixed || settings.getUseWideViewPort()) {
mMinZoomScale = newZoomOverviewScale;
mMaxZoomScale = Math.max(mMaxZoomScale, mMinZoomScale);
}
@@ -1013,9 +1013,9 @@ class ZoomManager {
// Make sure mobile sites are correctly handled since mobile site will
// change content width after rotating.
boolean mobileSiteInOverview = mInZoomOverview &&
- !exceedsMinScaleIncrement(newZoomOverviewScale, 1.0f);
+ !exceedsMinScaleIncrement(newZoomOverviewScale, mDefaultScale);
if (!mWebView.drawHistory() &&
- (scaleLessThanOverview ||
+ ((scaleLessThanOverview && settings.getUseWideViewPort())||
((mInitialZoomOverview || mobileSiteInOverview) &&
scaleHasDiff && zoomOverviewWidthChanged))) {
mInitialZoomOverview = false;
@@ -1071,7 +1071,8 @@ class ZoomManager {
updateZoomRange(viewState, viewSize.x, drawData.mMinPrefWidth);
setupZoomOverviewWidth(drawData, mWebView.getViewWidth());
final float overviewScale = getZoomOverviewScale();
- if (!mMinZoomScaleFixed) {
+ WebSettings settings = mWebView.getSettings();
+ if (!mMinZoomScaleFixed || settings.getUseWideViewPort()) {
mMinZoomScale = (mInitialScale > 0) ?
Math.min(mInitialScale, overviewScale) : overviewScale;
mMaxZoomScale = Math.max(mMaxZoomScale, mMinZoomScale);
@@ -1079,8 +1080,6 @@ class ZoomManager {
if (!mWebView.drawHistory()) {
float scale;
- WebSettings settings = mWebView.getSettings();
-
if (mInitialScale > 0) {
scale = mInitialScale;
} else if (viewState.mViewScale > 0) {