diff options
author | Mangesh Ghiware <mghiware@google.com> | 2011-11-16 11:46:39 -0800 |
---|---|---|
committer | Mangesh Ghiware <mghiware@google.com> | 2011-11-16 13:31:56 -0800 |
commit | e832b63c97c18c8170643c5a1c565e07893c5368 (patch) | |
tree | 9e326abb30cddbb5b95bba983f8c0abefcef75b5 /core | |
parent | 6a54a997e3dc71c5b9c5a1c7829bc3eb35404e92 (diff) | |
download | frameworks_base-e832b63c97c18c8170643c5a1c565e07893c5368.zip frameworks_base-e832b63c97c18c8170643c5a1c565e07893c5368.tar.gz frameworks_base-e832b63c97c18c8170643c5a1c565e07893c5368.tar.bz2 |
Revert change to setInitialScale() to take display density into account.
Updated WebView documentation to clarify this behavior.
Additionally, if target-densityDpi is specified in the meta viewport
tag, update the display density in ZoomManager.
Bug: 5477652
Bug: 5327492
Change-Id: I176e87489f76a2ee6595d76a006e302b07595de1
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/webkit/WebSettings.java | 2 | ||||
-rw-r--r-- | core/java/android/webkit/WebView.java | 10 | ||||
-rw-r--r-- | core/java/android/webkit/WebViewCore.java | 5 | ||||
-rw-r--r-- | core/java/android/webkit/ZoomManager.java | 2 |
4 files changed, 14 insertions, 5 deletions
diff --git a/core/java/android/webkit/WebSettings.java b/core/java/android/webkit/WebSettings.java index f240a2e..0c3f94e 100644 --- a/core/java/android/webkit/WebSettings.java +++ b/core/java/android/webkit/WebSettings.java @@ -799,7 +799,7 @@ public class WebSettings { public void setDefaultZoom(ZoomDensity zoom) { if (mDefaultZoom != zoom) { mDefaultZoom = zoom; - mWebView.updateDefaultZoomDensity(zoom.value); + mWebView.adjustDefaultZoomDensity(zoom.value); } } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 7249497..342c6c5 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1341,9 +1341,13 @@ public class WebView extends AbsoluteLayout } } - /* package */void updateDefaultZoomDensity(int zoomDensity) { + /* package */ void adjustDefaultZoomDensity(int zoomDensity) { final float density = mContext.getResources().getDisplayMetrics().density * 100 / zoomDensity; + updateDefaultZoomDensity(density); + } + + /* package */ void updateDefaultZoomDensity(float density) { mNavSlop = (int) (16 * density); mZoomManager.updateDefaultZoomDensity(density); } @@ -2469,7 +2473,9 @@ public class WebView extends AbsoluteLayout * Set the initial scale for the WebView. 0 means default. If * {@link WebSettings#getUseWideViewPort()} is true, it zooms out all the * way. Otherwise it starts with 100%. If initial scale is greater than 0, - * WebView starts will this value as initial scale. + * WebView starts with this value as initial scale. + * Please note that unlike the scale properties in the viewport meta tag, + * this method doesn't take the screen density into account. * * @param scaleInPercent The initial scale in percent. */ diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index cd61481..a97f4dd 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -2336,6 +2336,9 @@ public final class WebViewCore { adjust = (float) mContext.getResources().getDisplayMetrics().densityDpi / mViewportDensityDpi; } + if (adjust != mWebView.getDefaultZoomScale()) { + mWebView.updateDefaultZoomDensity(adjust); + } int defaultScale = (int) (adjust * 100); if (mViewportInitialScale > 0) { @@ -2546,7 +2549,7 @@ public final class WebViewCore { // called by JNI private void restoreScale(float scale, float textWrapScale) { if (mBrowserFrame.firstLayoutDone() == false) { - mIsRestored = scale > 0; + mIsRestored = true; mRestoredScale = scale; if (mSettings.getUseWideViewPort()) { mRestoredTextWrapScale = textWrapScale; diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index f599dba..84d00c9 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -349,7 +349,7 @@ class ZoomManager { } public final void setInitialScaleInPercent(int scaleInPercent) { - mInitialScale = scaleInPercent * mDisplayDensity * 0.01f; + mInitialScale = scaleInPercent * 0.01f; } public final float computeScaleWithLimits(float scale) { |