diff options
author | Cary Clark <cary@android.com> | 2010-12-01 07:38:01 -0500 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2010-12-01 07:38:01 -0500 |
commit | e092d6b1599293e672f3f179ad3d47e10f7c526a (patch) | |
tree | 86ecbca90719d2a669f7e258d70a5c5fd4a5fd6c /WebCore/platform/graphics | |
parent | 9452ba0145560fdf2bb6e0891e0db198fd883d17 (diff) | |
download | external_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.h | 2 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/GLWebViewState.cpp | 2 |
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); |