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

Side by Side Diff: Source/core/rendering/RenderBlock.cpp

Issue 584033002: [New Multicolumn] Add support for column-span:all (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase master Created 6 years, 2 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
« no previous file with comments | « Source/core/rendering/LayoutState.cpp ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after
1066 1066
1067 if (child->previousSibling()) 1067 if (child->previousSibling())
1068 child->previousSibling()->setNextSibling(child->nextSibling()); 1068 child->previousSibling()->setNextSibling(child->nextSibling());
1069 if (child->nextSibling()) 1069 if (child->nextSibling())
1070 child->nextSibling()->setPreviousSibling(child->previousSibling()); 1070 child->nextSibling()->setPreviousSibling(child->previousSibling());
1071 } 1071 }
1072 1072
1073 child->children()->setFirstChild(0); 1073 child->children()->setFirstChild(0);
1074 child->m_next = nullptr; 1074 child->m_next = nullptr;
1075 1075
1076 // Remove all the information in the flow thread associated with the leftove r anonymous block.
1077 child->removeFromRenderFlowThread();
1078
1079 // RenderGrid keeps track of its children, we must notify it about changes i n the tree. 1076 // RenderGrid keeps track of its children, we must notify it about changes i n the tree.
1080 if (child->parent()->isRenderGrid()) 1077 if (child->parent()->isRenderGrid())
1081 toRenderGrid(child->parent())->dirtyGrid(); 1078 toRenderGrid(child->parent())->dirtyGrid();
1082 1079
1083 child->setParent(0); 1080 child->setParent(0);
1084 child->setPreviousSibling(0); 1081 child->setPreviousSibling(0);
1085 child->setNextSibling(0); 1082 child->setNextSibling(0);
1086 1083
1087 child->destroy(); 1084 child->destroy();
1088 } 1085 }
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
1512 return; 1509 return;
1513 1510
1514 IntRect inflatedRect = pixelSnappedBorderBoxRect(); 1511 IntRect inflatedRect = pixelSnappedBorderBoxRect();
1515 RenderTheme::theme().adjustPaintInvalidationRect(this, inflatedRect); 1512 RenderTheme::theme().adjustPaintInvalidationRect(this, inflatedRect);
1516 addVisualOverflow(inflatedRect); 1513 addVisualOverflow(inflatedRect);
1517 } 1514 }
1518 1515
1519 bool RenderBlock::createsBlockFormattingContext() const 1516 bool RenderBlock::createsBlockFormattingContext() const
1520 { 1517 {
1521 return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated() 1518 return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated()
1522 || style()->specifiesColumns() || isRenderFlowThread() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElement( ) || style()->columnSpan(); 1519 || style()->specifiesColumns() || isRenderFlowThread() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElement( ) || (document().regionBasedColumnsEnabled() ? isColumnSpanAll() : style()->colu mnSpan());
1523 } 1520 }
1524 1521
1525 void RenderBlock::updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, R enderBox* child) 1522 void RenderBlock::updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, R enderBox* child)
1526 { 1523 {
1527 // FIXME: Technically percentage height objects only need a relayout if thei r percentage isn't going to be turned into 1524 // FIXME: Technically percentage height objects only need a relayout if thei r percentage isn't going to be turned into
1528 // an auto value. Add a method to determine this, so that we can avoid the r elayout. 1525 // an auto value. Add a method to determine this, so that we can avoid the r elayout.
1529 if (relayoutChildren || (child->hasRelativeLogicalHeight() && !isRenderView( ))) 1526 if (relayoutChildren || (child->hasRelativeLogicalHeight() && !isRenderView( )))
1530 child->setChildNeedsLayout(MarkOnlyThis); 1527 child->setChildNeedsLayout(MarkOnlyThis);
1531 1528
1532 // If relayoutChildren is set and the child has percentage padding or an emb edded content box, we also need to invalidate the childs pref widths. 1529 // If relayoutChildren is set and the child has percentage padding or an emb edded content box, we also need to invalidate the childs pref widths.
(...skipping 2839 matching lines...) Expand 10 before | Expand all | Expand 10 after
4372 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render Object* obj) const 4369 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render Object* obj) const
4373 { 4370 {
4374 showRenderObject(); 4371 showRenderObject();
4375 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) 4372 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box())
4376 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); 4373 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1);
4377 } 4374 }
4378 4375
4379 #endif 4376 #endif
4380 4377
4381 } // namespace blink 4378 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/rendering/LayoutState.cpp ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698