summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMangesh Ghiware <mghiware@google.com>2011-11-16 11:46:39 -0800
committerMangesh Ghiware <mghiware@google.com>2011-11-16 13:31:56 -0800
commite832b63c97c18c8170643c5a1c565e07893c5368 (patch)
tree9e326abb30cddbb5b95bba983f8c0abefcef75b5 /core
parent6a54a997e3dc71c5b9c5a1c7829bc3eb35404e92 (diff)
downloadframeworks_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.java2
-rw-r--r--core/java/android/webkit/WebView.java10
-rw-r--r--core/java/android/webkit/WebViewCore.java5
-rw-r--r--core/java/android/webkit/ZoomManager.java2
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) {