fix tab switching animation bug
Bug: 3510200
block tab swicthing while animation is running
this shouldn't affect users much,
but prevent some monkey business
Change-Id: I198d3572ec5c0b3170ee15355ab9edcfb20743d1
diff --git a/src/com/android/browser/ScrollWebView.java b/src/com/android/browser/ScrollWebView.java
index d1dc25b..2ee2ac0 100644
--- a/src/com/android/browser/ScrollWebView.java
+++ b/src/com/android/browser/ScrollWebView.java
@@ -151,14 +151,15 @@
}
void setDrawCached(boolean cached) {
+ if (cached == mDrawCached) return;
if (cached) {
buildDrawingCache();
mBitmap = getDrawingCache(false);
mDrawCached = (mBitmap != null);
} else {
+ mDrawCached = false;
mBitmap = null;
destroyDrawingCache();
- mDrawCached = false;
}
}
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index 33151f7..371e649 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -51,6 +51,7 @@
private boolean mUseQuickControls;
private PieControl mPieControl;
+ private boolean mInAnimation = false;
/**
* @param browser
@@ -210,7 +211,9 @@
@Override
public void setActiveTab(final Tab tab) {
+ if (mInAnimation) return;
if ((tab != mActiveTab) && (mActiveTab != null)) {
+ mInAnimation = true;
// animate between the two
final ScrollWebView fromWV = (ScrollWebView) mActiveTab.getWebView();
fromWV.setDrawCached(true);
@@ -234,6 +237,7 @@
fromWV.setDrawCached(false);
toWV.setDrawCached(false);
setActiveTab(tab, false);
+ mInAnimation = false;
}
@Override
@@ -241,6 +245,7 @@
fromWV.setDrawCached(false);
toWV.setDrawCached(false);
setActiveTab(tab, false);
+ mInAnimation = false;
}
@Override