summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-04-11 16:45:41 -0700
committerChris Craik <ccraik@google.com>2012-04-20 17:41:04 -0700
commit9e5936bc534c646f7009bf197217607955b150a6 (patch)
tree41ca97460c5b7abdd1b0448b76c11234b56785a5 /core
parent70c8723e63e2c58115c356bd4e9525b823b7bf28 (diff)
downloadframeworks_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.java13
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());
+ }
}
}