summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-12-01 07:38:01 -0500
committerCary Clark <cary@android.com>2010-12-01 07:38:01 -0500
commite092d6b1599293e672f3f179ad3d47e10f7c526a (patch)
tree86ecbca90719d2a669f7e258d70a5c5fd4a5fd6c /WebCore/platform/graphics
parent9452ba0145560fdf2bb6e0891e0db198fd883d17 (diff)
downloadexternal_webkit-e092d6b1599293e672f3f179ad3d47e10f7c526a.zip
external_webkit-e092d6b1599293e672f3f179ad3d47e10f7c526a.tar.gz
external_webkit-e092d6b1599293e672f3f179ad3d47e10f7c526a.tar.bz2
attach the last extra to the next picture
When a new picture is generated for the content, use the last cursor ring / text selection etc. for the interval between the picture message and the view inval. This reduces flickering. bug:3230094 Change-Id: Ie099a8db395bfa707790ffe3c1f7f5398cc9afa4
Diffstat (limited to 'WebCore/platform/graphics')
-rw-r--r--WebCore/platform/graphics/android/BaseLayerAndroid.h2
-rw-r--r--WebCore/platform/graphics/android/GLWebViewState.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/WebCore/platform/graphics/android/BaseLayerAndroid.h b/WebCore/platform/graphics/android/BaseLayerAndroid.h
index 08a601e..93225c2 100644
--- a/WebCore/platform/graphics/android/BaseLayerAndroid.h
+++ b/WebCore/platform/graphics/android/BaseLayerAndroid.h
@@ -59,7 +59,7 @@ public:
bool drawGL(IntRect& rect, SkRect& viewport,
float scale, SkColor color = SK_ColorWHITE);
-
+ void swapExtra(BaseLayerAndroid* base) { m_extra.swap(base->m_extra); }
private:
#if USE(ACCELERATED_COMPOSITING)
bool drawBasePictureInGL(SkRect& viewport, float scale);
diff --git a/WebCore/platform/graphics/android/GLWebViewState.cpp b/WebCore/platform/graphics/android/GLWebViewState.cpp
index fbf33c2..0795b4b 100644
--- a/WebCore/platform/graphics/android/GLWebViewState.cpp
+++ b/WebCore/platform/graphics/android/GLWebViewState.cpp
@@ -97,6 +97,8 @@ GLWebViewState::~GLWebViewState()
void GLWebViewState::setBaseLayer(BaseLayerAndroid* layer, const IntRect& rect)
{
android::Mutex::Autolock lock(m_baseLayerLock);
+ if (m_baseLayer && layer)
+ m_baseLayer->swapExtra(layer);
m_baseLayer = layer;
if (m_baseLayer) {
m_baseLayer->setGLWebViewState(this);