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

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: Created 6 years, 3 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) 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();
Julien - ping for review 2014/09/30 00:39:32 Are we sure we don't insert children into the flow
mstensho (USE GERRIT) 2014/09/30 20:20:28 This is an anonymous block, and just became childl
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 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 return; 1515 return;
1519 1516
1520 IntRect inflatedRect = pixelSnappedBorderBoxRect(); 1517 IntRect inflatedRect = pixelSnappedBorderBoxRect();
1521 RenderTheme::theme().adjustPaintInvalidationRect(this, inflatedRect); 1518 RenderTheme::theme().adjustPaintInvalidationRect(this, inflatedRect);
1522 addVisualOverflow(inflatedRect); 1519 addVisualOverflow(inflatedRect);
1523 } 1520 }
1524 1521
1525 bool RenderBlock::createsBlockFormattingContext() const 1522 bool RenderBlock::createsBlockFormattingContext() const
1526 { 1523 {
1527 return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated() 1524 return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated()
1528 || style()->specifiesColumns() || isRenderFlowThread() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElement( ) || style()->columnSpan(); 1525 || style()->specifiesColumns() || isRenderFlowThread() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() || isDocumentElement( ) || (document().regionBasedColumnsEnabled() ? isColumnSpanAll() : style()->colu mnSpan());
1529 } 1526 }
1530 1527
1531 void RenderBlock::updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, R enderBox* child) 1528 void RenderBlock::updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, R enderBox* child)
1532 { 1529 {
1533 // FIXME: Technically percentage height objects only need a relayout if thei r percentage isn't going to be turned into 1530 // FIXME: Technically percentage height objects only need a relayout if thei r percentage isn't going to be turned into
1534 // an auto value. Add a method to determine this, so that we can avoid the r elayout. 1531 // an auto value. Add a method to determine this, so that we can avoid the r elayout.
1535 if (relayoutChildren || (child->hasRelativeLogicalHeight() && !isRenderView( ))) 1532 if (relayoutChildren || (child->hasRelativeLogicalHeight() && !isRenderView( )))
1536 child->setChildNeedsLayout(MarkOnlyThis); 1533 child->setChildNeedsLayout(MarkOnlyThis);
1537 1534
1538 // 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. 1535 // 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 2856 matching lines...) Expand 10 before | Expand all | Expand 10 after
4395 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render Object* obj) const 4392 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render Object* obj) const
4396 { 4393 {
4397 showRenderObject(); 4394 showRenderObject();
4398 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) 4395 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box())
4399 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); 4396 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1);
4400 } 4397 }
4401 4398
4402 #endif 4399 #endif
4403 4400
4404 } // namespace blink 4401 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698