summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit/android/jni/PictureSet.cpp10
-rw-r--r--Source/WebKit/android/nav/WebView.cpp7
2 files changed, 11 insertions, 6 deletions
diff --git a/Source/WebKit/android/jni/PictureSet.cpp b/Source/WebKit/android/jni/PictureSet.cpp
index 181256c..98d7438 100644
--- a/Source/WebKit/android/jni/PictureSet.cpp
+++ b/Source/WebKit/android/jni/PictureSet.cpp
@@ -83,13 +83,19 @@ PictureSet::PictureSet()
PictureSet::PictureSet(SkPicture* picture)
{
- if (!picture)
+ mBaseArea = mAdditionalArea = 0;
+ if (!picture) {
+ mWidth = mHeight = 0;
return;
+ }
+ mWidth = picture->width();
+ mHeight = picture->height();
+ mBaseArea = mWidth * mHeight;
Pictures pictureAndBounds;
pictureAndBounds.mPicture = picture;
SkSafeRef(pictureAndBounds.mPicture);
pictureAndBounds.mEmpty = false;
- pictureAndBounds.mArea.setRect(0, 0, picture->width(), picture->height());
+ pictureAndBounds.mArea.setRect(0, 0, mWidth, mHeight);
pictureAndBounds.mSplit = false;
pictureAndBounds.mBase = true;
pictureAndBounds.mElapsed = 0;
diff --git a/Source/WebKit/android/nav/WebView.cpp b/Source/WebKit/android/nav/WebView.cpp
index 405b28e..8d3082b 100644
--- a/Source/WebKit/android/nav/WebView.cpp
+++ b/Source/WebKit/android/nav/WebView.cpp
@@ -383,6 +383,7 @@ void resetCursorRing()
bool drawCursorPreamble(CachedRoot* root)
{
+ if (!root) return false;
const CachedFrame* frame;
const CachedNode* node = root->currentCursor(&frame);
if (!node) {
@@ -444,7 +445,7 @@ bool drawGL(WebCore::IntRect& viewRect, WebCore::IntRect* invalRect, WebCore::In
SkIRect rect;
rect.set(0, 0, m_baseLayer->content()->width(), m_baseLayer->content()->height());
region.setRect(rect);
- m_glWebViewState->setBaseLayer(m_baseLayer, region, false, false);
+ m_glWebViewState->setBaseLayer(m_baseLayer, region, false, true);
}
}
@@ -453,7 +454,6 @@ bool drawGL(WebCore::IntRect& viewRect, WebCore::IntRect* invalRect, WebCore::In
DBG_NAV_LOG("!root");
if (extras == DrawExtrasCursorRing)
resetCursorRing();
- return false;
}
DrawExtra* extra = 0;
switch (extras) {
@@ -491,7 +491,7 @@ bool drawGL(WebCore::IntRect& viewRect, WebCore::IntRect* invalRect, WebCore::In
extra->draw(canvas, &mainPicture, &rect);
picture.endRecording();
}
- } else if (extras == DrawExtrasCursorRing && m_ring.m_isButton) {
+ } else if (root && extras == DrawExtrasCursorRing && m_ring.m_isButton) {
const CachedFrame* cachedFrame;
const CachedNode* cachedCursor = root->currentCursor(&cachedFrame);
if (cachedCursor) {
@@ -538,7 +538,6 @@ PictureSet* draw(SkCanvas* canvas, SkColor bgColor, int extras, bool split)
DBG_NAV_LOG("!root");
if (extras == DrawExtrasCursorRing)
resetCursorRing();
- return ret;
}
LayerAndroid mainPicture(m_navPictureUI);
DrawExtra* extra = 0;