summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2012-09-20 10:21:40 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-09-20 10:21:41 -0700
commitb6610d8289f5c682a7f66d419afcfbd6541d0367 (patch)
treee18d342398e735e83a115ac9ad6788482b00daa7 /core/java/android
parent3d5be42eaa35914d9b37fe052fa7222dc1992dc0 (diff)
parent6013d8c25b19149de1f57b3a413e3fbd23329d9f (diff)
downloadframeworks_base-b6610d8289f5c682a7f66d419afcfbd6541d0367.zip
frameworks_base-b6610d8289f5c682a7f66d419afcfbd6541d0367.tar.gz
frameworks_base-b6610d8289f5c682a7f66d419afcfbd6541d0367.tar.bz2
Merge "Fix DPI scaling on TVDPI" into jb-mr1-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/webkit/WebViewCore.java3
-rw-r--r--core/java/android/webkit/ZoomManager.java13
2 files changed, 16 insertions, 0 deletions
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index ddc0319..33fe834 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -2528,6 +2528,9 @@ public final class WebViewCore {
adjust = (float) mContext.getResources().getDisplayMetrics().densityDpi
/ mViewportDensityDpi;
}
+ // We make bad assumptions about multiplying and dividing by 100, force
+ // them to be true with this hack
+ adjust = ((int) (adjust * 100)) / 100.0f;
// Remove any update density messages in flight.
// If the density is indeed different from WebView's default scale,
// a new message will be queued.
diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java
index 80a6782..1d864e5 100644
--- a/core/java/android/webkit/ZoomManager.java
+++ b/core/java/android/webkit/ZoomManager.java
@@ -287,6 +287,7 @@ class ZoomManager {
if (!exceedsMinScaleIncrement(mMinZoomScale, mMaxZoomScale)) {
mMaxZoomScale = mMinZoomScale;
}
+ sanitizeMinMaxScales();
}
public final float getScale() {
@@ -909,6 +910,14 @@ class ZoomManager {
}
}
+ private void sanitizeMinMaxScales() {
+ if (mMinZoomScale > mMaxZoomScale) {
+ Log.w(LOGTAG, "mMinZoom > mMaxZoom!!! " + mMinZoomScale + " > " + mMaxZoomScale,
+ new Exception());
+ mMaxZoomScale = mMinZoomScale;
+ }
+ }
+
public void onSizeChanged(int w, int h, int ow, int oh) {
// reset zoom and anchor to the top left corner of the screen
// unless we are already zooming
@@ -933,6 +942,7 @@ class ZoomManager {
if (mInitialScale > 0 && mInitialScale < mMinZoomScale) {
mMinZoomScale = mInitialScale;
}
+ sanitizeMinMaxScales();
}
dismissZoomPicker();
@@ -1004,6 +1014,7 @@ class ZoomManager {
} else {
mMaxZoomScale = viewState.mMaxScale;
}
+ sanitizeMinMaxScales();
}
/**
@@ -1033,6 +1044,7 @@ class ZoomManager {
if (!mMinZoomScaleFixed || settings.getUseWideViewPort()) {
mMinZoomScale = newZoomOverviewScale;
mMaxZoomScale = Math.max(mMaxZoomScale, mMinZoomScale);
+ sanitizeMinMaxScales();
}
// fit the content width to the current view for the first new picture
// after first layout.
@@ -1113,6 +1125,7 @@ class ZoomManager {
mMinZoomScale = (mInitialScale > 0) ?
Math.min(mInitialScale, overviewScale) : overviewScale;
mMaxZoomScale = Math.max(mMaxZoomScale, mMinZoomScale);
+ sanitizeMinMaxScales();
}
if (!mWebView.drawHistory()) {