diff options
| author | Chris Craik <ccraik@google.com> | 2012-05-15 15:28:21 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-05-15 15:28:21 -0700 |
| commit | 6675f691ed952d37232a36a6e6f15e02fb419f9c (patch) | |
| tree | 956c008e043708100cb226d5d8d9e43dbb0d97ba | |
| parent | c8654acf6363830d9f0aef5dd09c9b97e75f9792 (diff) | |
| parent | 02c2f45ea21fefe2449bfb95c85df746b3a88bdc (diff) | |
| download | frameworks_base-6675f691ed952d37232a36a6e6f15e02fb419f9c.zip frameworks_base-6675f691ed952d37232a36a6e6f15e02fb419f9c.tar.gz frameworks_base-6675f691ed952d37232a36a6e6f15e02fb419f9c.tar.bz2 | |
Merge "Invalidate on new picture if scale/content size changes" into jb-dev
| -rw-r--r-- | core/java/android/webkit/WebViewClassic.java | 10 | ||||
| -rw-r--r-- | core/java/android/webkit/ZoomManager.java | 6 |
2 files changed, 10 insertions, 6 deletions
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index 5d42da1..ce67718 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -2939,6 +2939,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc // premature data from webkit, ignore if ((w | h) == 0) { + invalidate(); return; } @@ -2951,10 +2952,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc // updated when we get out of that mode. if (!mDrawHistory) { // repin our scroll, taking into account the new content size - if (updateScrollCoordinates(pinLocX(getScrollX()), - pinLocY(getScrollY()))) { - invalidate(); - } + updateScrollCoordinates(pinLocX(getScrollX()), pinLocY(getScrollY())); if (!mScroller.isFinished()) { // We are in the middle of a scroll. Repin the final scroll // position. @@ -2962,6 +2960,7 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc mScroller.setFinalY(pinLocY(mScroller.getFinalY())); } } + invalidate(); } contentSizeChanged(updateLayout); } @@ -7956,7 +7955,8 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc } // update the zoom information based on the new picture - mZoomManager.onNewPicture(draw); + if (mZoomManager.onNewPicture(draw)) + invalidate(); if (isPictureAfterFirstLayout) { mViewManager.postReadyToDrawAll(); diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index 2247678..1da59e4 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -1008,8 +1008,10 @@ class ZoomManager { /** * Updates zoom values when Webkit produces a new picture. This method * should only be called from the UI thread's message handler. + * + * @return True if zoom value has changed */ - public void onNewPicture(WebViewCore.DrawData drawData) { + public boolean onNewPicture(WebViewCore.DrawData drawData) { final int viewWidth = mWebView.getViewWidth(); final boolean zoomOverviewWidthChanged = setupZoomOverviewWidth(drawData, viewWidth); final float newZoomOverviewScale = getZoomOverviewScale(); @@ -1056,6 +1058,8 @@ class ZoomManager { // so next new picture could be forced into overview mode if it's true. mInitialZoomOverview = mInZoomOverview; } + + return scaleHasDiff; } /** |
