summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2010-11-09 15:37:31 -0800
committerShimeng (Simon) Wang <swang@google.com>2010-11-09 17:01:13 -0800
commitdbf5ff294aafc52c1defc0b1bcf3893331ef0c27 (patch)
treeb87c4516594b9562803120516d40186c0fddfafe /core
parent457087473a3c6b791f2f5e38eb525bf6ae33374c (diff)
downloadframeworks_base-dbf5ff294aafc52c1defc0b1bcf3893331ef0c27.zip
frameworks_base-dbf5ff294aafc52c1defc0b1bcf3893331ef0c27.tar.gz
frameworks_base-dbf5ff294aafc52c1defc0b1bcf3893331ef0c27.tar.bz2
Update textwrap scale when content width changes in overview mode.
This is mostly for sites which will change content width when first loaded such as nytimes.com. Also zoom to reading level if the zoom overview scale has very little diff from current actual scale. issue: 3003933 Change-Id: Ie4b32bf6ac109eef145cd59b31f04077226b9052
Diffstat (limited to 'core')
-rw-r--r--core/java/android/webkit/ZoomManager.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java
index 3f6b10a..c788a53 100644
--- a/core/java/android/webkit/ZoomManager.java
+++ b/core/java/android/webkit/ZoomManager.java
@@ -564,7 +564,7 @@ class ZoomManager {
&& exceedsMinScaleIncrement(mTextWrapScale, newTextWrapScale)) {
mTextWrapScale = newTextWrapScale;
refreshZoomScale(true);
- } else if (!mInZoomOverview) {
+ } else if (!mInZoomOverview && willScaleTriggerZoom(getZoomOverviewScale())) {
zoomToOverview();
} else {
zoomToReadingLevel();
@@ -589,8 +589,6 @@ class ZoomManager {
}
private void zoomToOverview() {
- if (!willScaleTriggerZoom(getZoomOverviewScale())) return;
-
// Force the titlebar fully reveal in overview mode
int scrollY = mWebView.getScrollY();
if (scrollY < mWebView.getTitleHeight()) {
@@ -800,9 +798,9 @@ class ZoomManager {
*/
public void onNewPicture(WebViewCore.DrawData drawData) {
final int viewWidth = mWebView.getViewWidth();
-
- if (mWebView.getSettings().getUseWideViewPort()) {
- if (!mWebView.getSettings().getUseFixedViewport()) {
+ WebSettings settings = mWebView.getSettings();
+ if (settings.getUseWideViewPort()) {
+ if (!settings.getUseFixedViewport()) {
// limit mZoomOverviewWidth upper bound to
// sMaxViewportWidth so that if the page doesn't behave
// well, the WebView won't go insane. limit the lower
@@ -812,7 +810,13 @@ class ZoomManager {
Math.max(drawData.mMinPrefWidth, drawData.mViewSize.x))));
} else {
final int contentWidth = Math.max(drawData.mContentSize.x, drawData.mMinPrefWidth);
- setZoomOverviewWidth(Math.min(WebView.sMaxViewportWidth, contentWidth));
+ final int newZoomOverviewWidth = Math.min(WebView.sMaxViewportWidth, contentWidth);
+ if (newZoomOverviewWidth != mZoomOverviewWidth) {
+ setZoomOverviewWidth(newZoomOverviewWidth);
+ if (settings.isNarrowColumnLayout() && (mInitialZoomOverview || mInZoomOverview)) {
+ mTextWrapScale = getReadingLevelScale();
+ }
+ }
}
}