summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2011-07-28 11:32:08 -0700
committerChris Craik <ccraik@google.com>2011-07-28 13:27:01 -0700
commit96eef4d75f8a709cc252a69c4e8cb5bd4251187e (patch)
tree08d0384ef4b09ca1391d414b1463c7df4e5163b4 /Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
parent14a561b2c1a0d30c36751ea756c773d70c9c4d76 (diff)
downloadexternal_webkit-96eef4d75f8a709cc252a69c4e8cb5bd4251187e.zip
external_webkit-96eef4d75f8a709cc252a69c4e8cb5bd4251187e.tar.gz
external_webkit-96eef4d75f8a709cc252a69c4e8cb5bd4251187e.tar.bz2
added pageswap callback from drawGL to WebView
bug:5008210 When setting a new base layer, WebView can signal that it wants to have it's pageSwapCallback triggered. This is only done upon request, currently whenever the WebTextView is being displayed so that it can be repositioned upon pageswap. Depends on the following frameworks/base change: https://android-git.corp.google.com/g/#change,124607 Change-Id: Id99c2d5a15cdb4317802a92cedae16a9e0aebc8d
Diffstat (limited to 'Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
index a09eb35..014fa40 100644
--- a/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
@@ -112,7 +112,8 @@ void BaseLayerAndroid::drawCanvas(SkCanvas* canvas)
}
#if USE(ACCELERATED_COMPOSITING)
-bool BaseLayerAndroid::drawBasePictureInGL(SkRect& viewport, float scale, double currentTime)
+bool BaseLayerAndroid::drawBasePictureInGL(SkRect& viewport, float scale,
+ double currentTime, bool* pagesSwapped)
{
if (!m_glWebViewState)
return false;
@@ -249,6 +250,8 @@ bool BaseLayerAndroid::drawBasePictureInGL(SkRect& viewport, float scale, double
m_glWebViewState->setCurrentScale(scale);
m_glWebViewState->swapPages();
m_glWebViewState->unlockBaseLayerUpdate();
+ if (pagesSwapped)
+ *pagesSwapped = true;
}
m_glWebViewState->paintExtras();
@@ -259,7 +262,8 @@ bool BaseLayerAndroid::drawBasePictureInGL(SkRect& viewport, float scale, double
bool BaseLayerAndroid::drawGL(LayerAndroid* compositedRoot,
IntRect& viewRect, SkRect& visibleRect,
IntRect& webViewRect, int titleBarHeight,
- IntRect& screenClip, float scale, SkColor color)
+ IntRect& screenClip, float scale,
+ bool* pagesSwapped, SkColor color)
{
bool needsRedraw = false;
#if USE(ACCELERATED_COMPOSITING)
@@ -299,7 +303,8 @@ bool BaseLayerAndroid::drawGL(LayerAndroid* compositedRoot,
shader->resetBlending();
double currentTime = WTF::currentTime();
- needsRedraw = drawBasePictureInGL(visibleRect, scale, currentTime);
+ needsRedraw = drawBasePictureInGL(visibleRect, scale, currentTime,
+ pagesSwapped);
bool goingDown = m_previousVisible.fTop - visibleRect.fTop <= 0;
bool goingLeft = m_previousVisible.fLeft - visibleRect.fLeft >= 0;
m_glWebViewState->setDirection(goingDown, goingLeft);