diff options
author | Chris Craik <ccraik@google.com> | 2012-04-11 16:45:41 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2012-04-20 17:41:04 -0700 |
commit | 9e5936bc534c646f7009bf197217607955b150a6 (patch) | |
tree | 41ca97460c5b7abdd1b0448b76c11234b56785a5 /core | |
parent | 70c8723e63e2c58115c356bd4e9525b823b7bf28 (diff) | |
download | frameworks_base-9e5936bc534c646f7009bf197217607955b150a6.zip frameworks_base-9e5936bc534c646f7009bf197217607955b150a6.tar.gz frameworks_base-9e5936bc534c646f7009bf197217607955b150a6.tar.bz2 |
Support picture listener correctly in HW webviews
Change-Id: I0e2c5d8cdf788b3a409efa9ced5d37abb1d169c0
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/webkit/WebViewClassic.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index 2793081..0670018 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -8003,6 +8003,12 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc // This provides a hook for ProfiledWebView to observe the tile page swaps. ((PageSwapDelegate) mWebView).onPageSwapOccurred(notifyAnimationStarted); } + + if (mPictureListener != null) { + // trigger picture listener for hardware layers. Software layers are + // triggered in setNewPicture + mPictureListener.onNewPicture(getWebView(), capturePicture()); + } } void setNewPicture(final WebViewCore.DrawData draw, boolean updateBaseLayer) { @@ -8072,7 +8078,12 @@ public final class WebViewClassic implements WebViewProvider, WebViewProvider.Sc scrollEditWithCursor(); if (mPictureListener != null) { - mPictureListener.onNewPicture(getWebView(), capturePicture()); + if (!mWebView.isHardwareAccelerated() + || mWebView.getLayerType() == View.LAYER_TYPE_SOFTWARE) { + // trigger picture listener for software layers. Hardware layers are + // triggered in pageSwapCallback + mPictureListener.onNewPicture(getWebView(), capturePicture()); + } } } |