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 |