summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2011-06-30 13:55:10 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-06-30 13:55:10 -0700
commit56528a3546777bd6e6739b0d99d67ec7598e06ea (patch)
treee84735adb71de27dddcbedc4adb7345e0ea99671
parent5612b3d1252b8cb850745b3a35948b47561fa1fc (diff)
parent72a1d2e1386fcf1795621c2eeb05287d46c7278c (diff)
downloadframeworks_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.java8
-rw-r--r--core/java/android/webkit/ZoomManager.java5
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;
+ }
}
/**