summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2010-09-16 15:29:32 -0700
committerShimeng (Simon) Wang <swang@google.com>2010-09-16 15:37:03 -0700
commita8f99bbbbc89014a2c38637f8e2179f0cd578b11 (patch)
treefa1c435545ddd2e950a1d861490576ffd4763bb7 /core/java
parent8c256274ac1ca8df6241d02d0a99353c511eb9b9 (diff)
Use website specified viewport.
In fixed viewport mode, use website specified viewport to override the default fixed viewport. issue: 3007588 Change-Id: I0ed86a2f829d18bf35dba47f766b23be1ace8ff5
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/webkit/WebViewCore.java9
-rw-r--r--core/java/android/webkit/ZoomManager.java8
2 files changed, 15 insertions, 2 deletions
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 56d62962f313..37668301c691 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -1705,7 +1705,12 @@ final class WebViewCore {
nativeGetContentMinPrefWidth())));
}
} else if (mViewportWidth > 0) {
- width = Math.max(w, mViewportWidth);
+ if (mSettings.getUseFixedViewport()) {
+ // Use website specified viewport width.
+ width = mViewportWidth;
+ } else {
+ width = Math.max(w, mViewportWidth);
+ }
} else {
width = textwrapWidth;
}
@@ -1780,6 +1785,7 @@ final class WebViewCore {
int mScrollX;
int mScrollY;
boolean mMobileSite;
+ int mViewportWidth;
}
static class DrawData {
@@ -2154,6 +2160,7 @@ final class WebViewCore {
mInitialViewState.mScrollX = mRestoredX;
mInitialViewState.mScrollY = mRestoredY;
mInitialViewState.mMobileSite = (0 == mViewportWidth);
+ mInitialViewState.mViewportWidth = mViewportWidth;
if (mRestoredScale > 0) {
mInitialViewState.mViewScale = mRestoredScale / 100.0f;
if (mRestoredTextWrapScale > 0) {
diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java
index a760e91c7299..0d704a01b163 100644
--- a/core/java/android/webkit/ZoomManager.java
+++ b/core/java/android/webkit/ZoomManager.java
@@ -770,6 +770,12 @@ class ZoomManager {
} else {
mMaxZoomScale = viewState.mMaxScale;
}
+ if (viewState.mViewportWidth > 0 &&
+ mWebView.getSettings().getUseFixedViewport() &&
+ mWebView.getSettings().getUseWideViewPort()) {
+ // Use website specified viewport width.
+ setZoomOverviewWidth(viewState.mViewportWidth);
+ }
}
/**
@@ -835,7 +841,7 @@ class ZoomManager {
if (settings.getUseWideViewPort()
&& (settings.getLoadWithOverviewMode() || settings.getUseFixedViewport())) {
mInitialZoomOverview = true;
- scale = (float) mWebView.getViewWidth() / WebView.DEFAULT_VIEWPORT_WIDTH;
+ scale = (float) mWebView.getViewWidth() / mZoomOverviewWidth;
} else {
scale = viewState.mTextWrapScale;
}