summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-09-14 06:07:44 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-09-14 06:07:44 -0700
commit40eb71e3fee56da352632d872c203389b30d956e (patch)
tree5824d972377838790410b115b16d4d90ccc09077
parent7f2a883e6aacf727dc60d0eb38622ca99826a75f (diff)
parent205a7cfa91854de791995f40278e8c19491f6d99 (diff)
downloadexternal_webkit-40eb71e3fee56da352632d872c203389b30d956e.zip
external_webkit-40eb71e3fee56da352632d872c203389b30d956e.tar.gz
external_webkit-40eb71e3fee56da352632d872c203389b30d956e.tar.bz2
Merge "clip img elements the same as text"
-rw-r--r--WebKit/android/nav/CacheBuilder.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/WebKit/android/nav/CacheBuilder.cpp b/WebKit/android/nav/CacheBuilder.cpp
index 3453d20..8adc648 100644
--- a/WebKit/android/nav/CacheBuilder.cpp
+++ b/WebKit/android/nav/CacheBuilder.cpp
@@ -473,9 +473,11 @@ void CacheBuilder::Debug::groups() {
RenderStyle* style = renderer->style();
snprintf(scratch, sizeof(scratch), "// renderStyle:"
" visibility=%s hasBackGround=%d"
- " tapHighlightColor().alpha()=0x%02x",
+ " tapHighlightColor().alpha()=0x%02x"
+ " isTransparent()=%s",
style->visibility() == HIDDEN ? "HIDDEN" : "VISIBLE",
- renderer->hasBackground(), style->tapHighlightColor().alpha());
+ renderer->hasBackground(), style->tapHighlightColor().alpha(),
+ renderer->isTransparent() ? "true" : "false");
newLine();
print(scratch);
RenderBlock* renderBlock = static_cast<RenderBlock*>(renderer);
@@ -3023,18 +3025,18 @@ bool CacheBuilder::ConstructPartRects(Node* node, const IntRect& bounds,
EVisibility vis = renderer->style()->visibility();
if (vis == HIDDEN)
continue;
+ bool hasClip = renderer->hasOverflowClip();
+ size_t clipIndex = clipTracker.size();
+ IntRect clipBounds = IntRect(0, 0, INT_MAX, INT_MAX);
+ if (hasClip || --clipIndex > 0) {
+ clipBounds = hasClip ? renderer->absoluteBoundingBoxRect() :
+ clipTracker.at(clipIndex).mBounds; // x, y fixup done by ConstructTextRect
+ }
if (test->isTextNode()) {
RenderText* renderText = (RenderText*) renderer;
InlineTextBox *textBox = renderText->firstTextBox();
if (textBox == NULL)
continue;
- bool hasClip = renderer->hasOverflowClip();
- size_t clipIndex = clipTracker.size();
- IntRect clipBounds = IntRect(0, 0, INT_MAX, INT_MAX);
- if (hasClip || --clipIndex > 0) {
- clipBounds = hasClip ? renderer->absoluteBoundingBoxRect() :
- clipTracker.at(clipIndex).mBounds; // x, y fixup done by ConstructTextRect
- }
if (ConstructTextRect((Text*) test, textBox, 0, INT_MAX,
x, y, focusBounds, clipBounds, result) == false) {
return false;
@@ -3043,6 +3045,7 @@ bool CacheBuilder::ConstructPartRects(Node* node, const IntRect& bounds,
}
if (test->hasTagName(HTMLNames::imgTag)) {
IntRect bounds = test->getRect();
+ bounds.intersect(clipBounds);
if (AddPartRect(bounds, x, y, result, focusBounds) == false)
return false;
continue;