Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Side by Side Diff: Source/WebCore/rendering/InlineFlowBox.cpp

Issue 6598044: Merge 79734 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/648/
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 933
934 if (paintInfo.phase != PaintPhaseChildOutlines) { 934 if (paintInfo.phase != PaintPhaseChildOutlines) {
935 if (paintInfo.phase == PaintPhaseOutline || paintInfo.phase == PaintPhas eSelfOutline) { 935 if (paintInfo.phase == PaintPhaseOutline || paintInfo.phase == PaintPhas eSelfOutline) {
936 // Add ourselves to the paint info struct's list of inlines that nee d to paint their 936 // Add ourselves to the paint info struct's list of inlines that nee d to paint their
937 // outlines. 937 // outlines.
938 if (renderer()->style()->visibility() == VISIBLE && renderer()->hasO utline() && !isRootInlineBox()) { 938 if (renderer()->style()->visibility() == VISIBLE && renderer()->hasO utline() && !isRootInlineBox()) {
939 RenderInline* inlineFlow = toRenderInline(renderer()); 939 RenderInline* inlineFlow = toRenderInline(renderer());
940 940
941 RenderBlock* cb = 0; 941 RenderBlock* cb = 0;
942 bool containingBlockPaintsContinuationOutline = inlineFlow->cont inuation() || inlineFlow->isInlineElementContinuation(); 942 bool containingBlockPaintsContinuationOutline = inlineFlow->cont inuation() || inlineFlow->isInlineElementContinuation();
943 if (containingBlockPaintsContinuationOutline) { 943 if (containingBlockPaintsContinuationOutline) {
944 cb = renderer()->containingBlock()->containingBlock(); 944 // FIXME: See https://bugs.webkit.org/show_bug.cgi?id=54690. We currently don't reconnect inline continuations
945 945 // after a child removal. As a result, those merged inlines do not get seperated and hence not get enclosed by
946 for (RenderBoxModelObject* box = boxModelObject(); box != cb ; box = box->parent()->enclosingBoxModelObject()) { 946 // anonymous blocks. In this case, it is better to bail out and paint it ourself.
947 if (box->hasSelfPaintingLayer()) { 947 RenderBlock* enclosingAnonymousBlock = renderer()->containin gBlock();
948 containingBlockPaintsContinuationOutline = false; 948 if (!enclosingAnonymousBlock->isAnonymousBlock())
949 break; 949 containingBlockPaintsContinuationOutline = false;
950 else {
951 cb = enclosingAnonymousBlock->containingBlock();
952 for (RenderBoxModelObject* box = boxModelObject(); box ! = cb; box = box->parent()->enclosingBoxModelObject()) {
953 if (box->hasSelfPaintingLayer()) {
954 containingBlockPaintsContinuationOutline = false ;
955 break;
956 }
950 } 957 }
951 } 958 }
952 } 959 }
953 960
954 if (containingBlockPaintsContinuationOutline) { 961 if (containingBlockPaintsContinuationOutline) {
955 // Add ourselves to the containing block of the entire conti nuation so that it can 962 // Add ourselves to the containing block of the entire conti nuation so that it can
956 // paint us atomically. 963 // paint us atomically.
957 cb->addContinuationWithOutline(toRenderInline(renderer()->no de()->renderer())); 964 cb->addContinuationWithOutline(toRenderInline(renderer()->no de()->renderer()));
958 } else if (!inlineFlow->isInlineElementContinuation()) 965 } else if (!inlineFlow->isInlineElementContinuation())
959 paintInfo.outlineObjects->add(inlineFlow); 966 paintInfo.outlineObjects->add(inlineFlow);
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1349 ASSERT(child->prevOnLine() == prev); 1356 ASSERT(child->prevOnLine() == prev);
1350 prev = child; 1357 prev = child;
1351 } 1358 }
1352 ASSERT(prev == m_lastChild); 1359 ASSERT(prev == m_lastChild);
1353 #endif 1360 #endif
1354 } 1361 }
1355 1362
1356 #endif 1363 #endif
1357 1364
1358 } // namespace WebCore 1365 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698