diff options
| author | Shimeng (Simon) Wang <swang@google.com> | 2011-02-16 10:31:16 -0800 |
|---|---|---|
| committer | Shimeng (Simon) Wang <swang@google.com> | 2011-02-16 10:38:21 -0800 |
| commit | 96b065f0014653821c1a1b69e7b13a00d02c38b0 (patch) | |
| tree | 750de22079b10a6150133d7fffcea74161e90aea /core/java | |
| parent | 4308735055130421e632c6a59cd6f91b5e97acf2 (diff) | |
| download | frameworks_base-96b065f0014653821c1a1b69e7b13a00d02c38b0.zip frameworks_base-96b065f0014653821c1a1b69e7b13a00d02c38b0.tar.gz frameworks_base-96b065f0014653821c1a1b69e7b13a00d02c38b0.tar.bz2 | |
Remember zoom overview state since the postscale callback is async.
issue: 3451476
Change-Id: I56eaeff4e35f8a791b990fcdd1188ca6cdef601a
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/webkit/ZoomManager.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/webkit/ZoomManager.java b/core/java/android/webkit/ZoomManager.java index 3aebd00..de624e0 100644 --- a/core/java/android/webkit/ZoomManager.java +++ b/core/java/android/webkit/ZoomManager.java @@ -791,14 +791,19 @@ class ZoomManager { // scaleAll(), we need to post a Runnable to ensure requestLayout(). // Additionally, only update the text wrap scale if the width changed. mWebView.post(new PostScale(w != ow && - !mWebView.getSettings().getUseFixedViewport())); + !mWebView.getSettings().getUseFixedViewport(), mInZoomOverview)); } private class PostScale implements Runnable { final boolean mUpdateTextWrap; + // Remember the zoom overview state right after rotation since + // it could be changed between the time this callback is initiated and + // the time it's actually run. + final boolean mInZoomOverviewBeforeSizeChange; - public PostScale(boolean updateTextWrap) { + public PostScale(boolean updateTextWrap, boolean inZoomOverview) { mUpdateTextWrap = updateTextWrap; + mInZoomOverviewBeforeSizeChange = inZoomOverview; } public void run() { @@ -807,7 +812,7 @@ class ZoomManager { // still want to send the notification over to webkit. // Keep overview mode unchanged when rotating. final float zoomOverviewScale = getZoomOverviewScale(); - final float newScale = (mInZoomOverview) ? + final float newScale = (mInZoomOverviewBeforeSizeChange) ? zoomOverviewScale : Math.max(mActualScale, zoomOverviewScale); setZoomScale(newScale, mUpdateTextWrap, true); // update the zoom buttons as the scale can be changed |
