summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shimeng (Simon) Wang <swang@google.com> 2011-07-07 15:26:22 -0700
committer Shimeng (Simon) Wang <swang@google.com> 2011-07-07 15:26:22 -0700
commit56bd4349fca6bb00e8ad28ff9ec514fa5d07073b (patch)
treeb49945c62f06733530127b2e42c8a2e460e86e44
parent63acea6ad4a9316e1450dea47840f45df4aaed25 (diff)
Update viewport asap.
Update viewport as soon as possible to make sure layout has correct viewport. This helps fixes gmail flickering issue. Also helps the case a mobile site is switched to desktop when the user agent is switched. issue: 4723800 Change-Id: I3dc9e52d912d49478d562cec3f38d653a563715e
-rw-r--r--core/java/android/webkit/WebViewCore.java19
1 files changed, 9 insertions, 10 deletions
diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java
index 4f97066aa381..2145edd39e11 100644
--- a/core/java/android/webkit/WebViewCore.java
+++ b/core/java/android/webkit/WebViewCore.java
@@ -2235,13 +2235,8 @@ public final class WebViewCore {
// called by JNI
private void updateViewport() {
- // if updateViewport is called before first layout, wait until first
- // layout to update the viewport. In the rare case, this is called after
- // first layout, force an update as we have just parsed the viewport
- // meta tag.
- if (mBrowserFrame.firstLayoutDone()) {
- setupViewport(true);
- }
+ // Update viewport asap to make sure we get correct one.
+ setupViewport(true);
}
private void setupViewport(boolean updateViewState) {
@@ -2375,8 +2370,12 @@ public final class WebViewCore {
(float) webViewWidth / mViewportWidth;
} else {
mInitialViewState.mTextWrapScale = adjust;
- // 0 will trigger WebView to turn on zoom overview mode
- mInitialViewState.mViewScale = 0;
+ if (mSettings.getUseWideViewPort()) {
+ // 0 will trigger WebView to turn on zoom overview mode
+ mInitialViewState.mViewScale = 0;
+ } else {
+ mInitialViewState.mViewScale = adjust;
+ }
}
}
@@ -2407,7 +2406,7 @@ public final class WebViewCore {
mEventHub.removeMessages(EventHub.VIEW_SIZE_CHANGED);
mEventHub.sendMessageAtFrontOfQueue(Message.obtain(null,
EventHub.VIEW_SIZE_CHANGED, data));
- } else if (mSettings.getUseWideViewPort()) {
+ } else {
if (viewportWidth == 0) {
// Trick to ensure VIEW_SIZE_CHANGED will be sent from WebView
// to WebViewCore