diff options
author | Shimeng (Simon) Wang <swang@google.com> | 2011-06-30 13:55:10 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-30 13:55:10 -0700 |
commit | 56528a3546777bd6e6739b0d99d67ec7598e06ea (patch) | |
tree | e84735adb71de27dddcbedc4adb7345e0ea99671 | |
parent | 5612b3d1252b8cb850745b3a35948b47561fa1fc (diff) | |
parent | 72a1d2e1386fcf1795621c2eeb05287d46c7278c (diff) | |
download | frameworks_base-56528a3546777bd6e6739b0d99d67ec7598e06ea.zip frameworks_base-56528a3546777bd6e6739b0d99d67ec7598e06ea.tar.gz frameworks_base-56528a3546777bd6e6739b0d99d67ec7598e06ea.tar.bz2 |
Merge "Keep initial zoom overview for non-standard load."
-rw-r--r-- | core/java/android/webkit/WebViewCore.java | 8 | ||||
-rw-r--r-- | core/java/android/webkit/ZoomManager.java | 5 |
2 files changed, 13 insertions, 0 deletions
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 8fae7ec..4f97066 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -1950,6 +1950,7 @@ public final class WebViewCore { // mInitialViewState is set by didFirstLayout() and then reset in the // next webkitDraw after passing the state to the UI thread. private ViewState mInitialViewState = null; + private boolean mFirstLayoutForNonStandardLoad; static class ViewState { float mMinScale; @@ -1977,6 +1978,7 @@ public final class WebViewCore { int mMinPrefWidth; // only non-null if it is for the first picture set after the first layout ViewState mViewState; + boolean mFirstLayoutForNonStandardLoad; boolean mFocusSizeChanged; } @@ -2026,6 +2028,10 @@ public final class WebViewCore { draw.mViewState = mInitialViewState; mInitialViewState = null; } + if (mFirstLayoutForNonStandardLoad) { + draw.mFirstLayoutForNonStandardLoad = true; + mFirstLayoutForNonStandardLoad = false; + } if (DebugFlags.WEB_VIEW_CORE) Log.v(LOGTAG, "webkitDraw NEW_PICTURE_MSG_ID"); Message.obtain(mWebView.mPrivateHandler, WebView.NEW_PICTURE_MSG_ID, draw).sendToTarget(); @@ -2312,6 +2318,8 @@ public final class WebViewCore { // if mViewportWidth is 0, it means device-width, always update. if (mViewportWidth != 0 && !updateViewState) { + // For non standard load, since updateViewState will be false. + mFirstLayoutForNonStandardLoad = true; ViewState viewState = new ViewState(); viewState.mMinScale = mViewportMinimumScale / 100.0f; viewState.mMaxScale = mViewportMaximumScale / 100.0f; diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index 6c6974b..7d43e94 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -1024,6 +1024,11 @@ class ZoomManager { } else { mInZoomOverview = !scaleHasDiff; } + if (drawData.mFirstLayoutForNonStandardLoad && settings.getLoadWithOverviewMode()) { + // Set mInitialZoomOverview in case this is the first picture for non standard load, + // so next new picture could be forced into overview mode if it's true. + mInitialZoomOverview = mInZoomOverview; + } } /** |