diff options
-rw-r--r-- | core/java/android/webkit/WebView.java | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index ff233d2..e2f5de4 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -3219,18 +3219,14 @@ public class WebView extends AbsoluteLayout } } - private void drawExtras(Canvas canvas, int extras) { + private void drawExtras(Canvas canvas, int extras, boolean animationsRunning) { // If mNativeClass is 0, we should not reach here, so we do not // need to check it again. - // Currently for each draw we compute the animation values; - // We may in the future decide to do that independently. - if (nativeEvaluateLayersAnimations()) { - // If we have unfinished (or unstarted) animations, - // we ask for a repaint. - invalidate(); + if (animationsRunning) { + canvas.setDrawFilter(mWebViewCore.mZoomFilter); } - nativeDrawExtras(canvas, extras); + canvas.setDrawFilter(null); } private void drawCoreAndCursorRing(Canvas canvas, int color, @@ -3315,8 +3311,18 @@ public class WebView extends AbsoluteLayout canvas.scale(mActualScale, mActualScale); } + boolean UIAnimationsRunning = false; + // Currently for each draw we compute the animation values; + // We may in the future decide to do that independently. + if (mNativeClass != 0 && nativeEvaluateLayersAnimations()) { + UIAnimationsRunning = true; + // If we have unfinished (or unstarted) animations, + // we ask for a repaint. + invalidate(); + } mWebViewCore.drawContentPicture(canvas, color, - (animateZoom || mPreviewZoomOnly), animateScroll); + (animateZoom || mPreviewZoomOnly || UIAnimationsRunning), + animateScroll); if (mNativeClass == 0) return; // decide which adornments to draw int extras = DRAW_EXTRAS_NONE; @@ -3337,7 +3343,7 @@ public class WebView extends AbsoluteLayout } else if (drawCursorRing) { extras = DRAW_EXTRAS_CURSOR_RING; } - drawExtras(canvas, extras); + drawExtras(canvas, extras, UIAnimationsRunning); if (extras == DRAW_EXTRAS_CURSOR_RING) { if (mTouchMode == TOUCH_SHORTPRESS_START_MODE) { |