summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-12-03 07:07:31 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-12-03 07:07:31 -0800
commit55ed83782c8af474e97c85fb30ad0bbd45a32665 (patch)
tree7b300deaff0b5927cf56855e7caaa78a977b218b /WebKit
parent82f247bdbb98dd80c44209d87692c650c3704617 (diff)
parent254441641f85b9a26fd3c9443af679f61f3a233e (diff)
downloadexternal_webkit-55ed83782c8af474e97c85fb30ad0bbd45a32665.zip
external_webkit-55ed83782c8af474e97c85fb30ad0bbd45a32665.tar.gz
external_webkit-55ed83782c8af474e97c85fb30ad0bbd45a32665.tar.bz2
Merge "keep rects separate across canvas push"
Diffstat (limited to 'WebKit')
-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 {