Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 1024 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1035 | 1035 |
| 1036 bool LayoutBlock::createsNewFormattingContext() const | 1036 bool LayoutBlock::createsNewFormattingContext() const |
| 1037 { | 1037 { |
| 1038 return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated() | 1038 return isInlineBlockOrInlineTable() || isFloatingOrOutOfFlowPositioned() || hasOverflowClip() || isFlexItemIncludingDeprecated() |
| 1039 || style()->specifiesColumns() || isLayoutFlowThread() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() | 1039 || style()->specifiesColumns() || isLayoutFlowThread() || isTableCell() || isTableCaption() || isFieldset() || isWritingModeRoot() |
| 1040 || isDocumentElement() || isColumnSpanAll() || isGridItem(); | 1040 || isDocumentElement() || isColumnSpanAll() || isGridItem(); |
| 1041 } | 1041 } |
| 1042 | 1042 |
| 1043 void LayoutBlock::updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, L ayoutBox& child) | 1043 void LayoutBlock::updateBlockChildDirtyBitsBeforeLayout(bool relayoutChildren, L ayoutBox& child) |
| 1044 { | 1044 { |
| 1045 if (child.isOutOfFlowPositioned()) { | |
|
dsinclair
2015/06/12 13:40:45
Doesn't this mean that an out of flow child will n
mstensho (USE GERRIT)
2015/06/12 13:45:08
The counterpart for out of flow objects seems to b
| |
| 1046 // It's rather useless to mark out-of-flow children at this point. We ma y not be their | |
| 1047 // containing block (and if we are, it's just pure luck), so this would be the wrong place | |
| 1048 // for it. Furthermore, it would cause trouble for out-of-flow descendan ts of column | |
| 1049 // spanners, if the containing block is outside the spanner but inside t he multicol container. | |
| 1050 return; | |
| 1051 } | |
| 1045 // FIXME: Technically percentage height objects only need a relayout if thei r percentage isn't going to be turned into | 1052 // FIXME: Technically percentage height objects only need a relayout if thei r percentage isn't going to be turned into |
| 1046 // an auto value. Add a method to determine this, so that we can avoid the r elayout. | 1053 // an auto value. Add a method to determine this, so that we can avoid the r elayout. |
| 1047 bool hasRelativeLogicalHeight = child.hasRelativeLogicalHeight() | 1054 bool hasRelativeLogicalHeight = child.hasRelativeLogicalHeight() |
| 1048 || (child.isAnonymous() && this->hasRelativeLogicalHeight()) | 1055 || (child.isAnonymous() && this->hasRelativeLogicalHeight()) |
| 1049 || child.stretchesToViewport(); | 1056 || child.stretchesToViewport(); |
| 1050 if (relayoutChildren || (hasRelativeLogicalHeight && !isLayoutView())) | 1057 if (relayoutChildren || (hasRelativeLogicalHeight && !isLayoutView())) |
| 1051 child.setChildNeedsLayout(MarkOnlyThis); | 1058 child.setChildNeedsLayout(MarkOnlyThis); |
| 1052 | 1059 |
| 1053 // 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. | 1060 // 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. |
| 1054 if (relayoutChildren && child.needsPreferredWidthsRecalculation()) | 1061 if (relayoutChildren && child.needsPreferredWidthsRecalculation()) |
| (...skipping 1852 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2907 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout Object* obj) const | 2914 void LayoutBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Layout Object* obj) const |
| 2908 { | 2915 { |
| 2909 showLayoutObject(); | 2916 showLayoutObject(); |
| 2910 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) | 2917 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot Box()) |
| 2911 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); | 2918 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa bel2, obj, 1); |
| 2912 } | 2919 } |
| 2913 | 2920 |
| 2914 #endif | 2921 #endif |
| 2915 | 2922 |
| 2916 } // namespace blink | 2923 } // namespace blink |
| OLD | NEW |