diff options
| author | John Reck <jreck@google.com> | 2012-09-20 10:21:40 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-20 10:21:41 -0700 |
| commit | b6610d8289f5c682a7f66d419afcfbd6541d0367 (patch) | |
| tree | e18d342398e735e83a115ac9ad6788482b00daa7 /core/java/android | |
| parent | 3d5be42eaa35914d9b37fe052fa7222dc1992dc0 (diff) | |
| parent | 6013d8c25b19149de1f57b3a413e3fbd23329d9f (diff) | |
| download | frameworks_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.java | 3 | ||||
| -rw-r--r-- | core/java/android/webkit/ZoomManager.java | 13 |
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()) { |
