diff options
| author | Shimeng (Simon) Wang <swang@google.com> | 2010-09-16 15:29:32 -0700 |
|---|---|---|
| committer | Shimeng (Simon) Wang <swang@google.com> | 2010-09-16 15:37:03 -0700 |
| commit | a8f99bbbbc89014a2c38637f8e2179f0cd578b11 (patch) | |
| tree | fa1c435545ddd2e950a1d861490576ffd4763bb7 /core/java | |
| parent | 8c256274ac1ca8df6241d02d0a99353c511eb9b9 (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.java | 9 | ||||
| -rw-r--r-- | core/java/android/webkit/ZoomManager.java | 8 |
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; } |
