summaryrefslogtreecommitdiffstats
path: root/core/java/android/webkit/ZoomManager.java
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2011-02-16 10:31:16 -0800
committerShimeng (Simon) Wang <swang@google.com>2011-02-16 10:38:21 -0800
commit96b065f0014653821c1a1b69e7b13a00d02c38b0 (patch)
tree750de22079b10a6150133d7fffcea74161e90aea /core/java/android/webkit/ZoomManager.java
parent4308735055130421e632c6a59cd6f91b5e97acf2 (diff)
downloadframeworks_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/android/webkit/ZoomManager.java')
-rw-r--r--core/java/android/webkit/ZoomManager.java11
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