From bc2e33b5c81b1d5ddc112ea004a0b7866bd00bec Mon Sep 17 00:00:00 2001 From: Cary Clark Date: Thu, 23 Apr 2009 13:12:19 -0400 Subject: [PATCH] don't swap out the history picture too soon Wait until either the picture is not blank or the progress is complete. --- core/java/android/webkit/WebView.java | 2 +- core/java/android/webkit/WebViewCore.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 79bd41b989929..6e79bc9acb43a 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -2844,7 +2844,7 @@ public class WebView extends AbsoluteLayout // Should only be called in UI thread void switchOutDrawHistory() { if (null == mWebViewCore) return; // CallbackProxy may trigger this - if (mDrawHistory) { + if (mDrawHistory && mWebViewCore.pictureReady()) { mDrawHistory = false; invalidate(); int oldScrollX = mScrollX; diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 3f7cdef224e2a..1415597be09b2 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -285,6 +285,11 @@ final class WebViewCore { * split into parts. Called from the UI thread. */ private native boolean nativeDrawContent(Canvas canvas, int color); + + /** + * check to see if picture is blank and in progress + */ + private native boolean nativePictureReady(); /** * Redraw a portion of the picture set. The Point wh returns the @@ -1347,6 +1352,10 @@ final class WebViewCore { } } + /* package */ boolean pictureReady() { + return nativePictureReady(); + } + /*package*/ Picture copyContentPicture() { Picture result = new Picture(); nativeCopyContentToPicture(result);