summaryrefslogtreecommitdiffstats
path: root/WebKit/android/nav/CachedRoot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/android/nav/CachedRoot.cpp')
-rw-r--r--WebKit/android/nav/CachedRoot.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/WebKit/android/nav/CachedRoot.cpp b/WebKit/android/nav/CachedRoot.cpp
index 7d5f3d9..7f4f06f 100644
--- a/WebKit/android/nav/CachedRoot.cpp
+++ b/WebKit/android/nav/CachedRoot.cpp
@@ -801,6 +801,7 @@ public:
mLayerTypes.size());
mLayers.remove(remove);
mLayerTypes.remove(remove);
+ mAppendLikeTypes = false;
return;
}
}
@@ -896,12 +897,15 @@ protected:
if (mType != kDrawGlyph_Type && mType != kDrawRect_Type
&& mType != kDrawSprite_Type && mType != kDrawBitmap_Type)
return false;
- if (mLayerTypes.isEmpty() || mLayerTypes.last() != mType)
+ if (mLayerTypes.isEmpty() || mLayerTypes.last() != mType
+ || !mAppendLikeTypes) {
push(mType, mEmpty);
+ }
DBG_NAV_LOGD("RingCheck join %s (%d,%d,r=%d,b=%d) '%c'",
TypeNames[mType], rect.fLeft, rect.fTop, rect.fRight, rect.fBottom,
mCh);
mLayers.last().op(rect, SkRegion::kUnion_Op);
+ mAppendLikeTypes = true;
return false;
}
@@ -1017,6 +1021,7 @@ private:
Vector<Type> mLayerTypes;
const SkPaint* mPaint;
char mCh;
+ bool mAppendLikeTypes;
};
class RingCanvas : public BoundsCanvas {