Changeset 232152 in webkit
- Timestamp:
- May 24, 2018, 8:01:11 AM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
layout/FormattingContext.cpp (modified) (2 diffs)
-
layout/FormattingContext.h (modified) (2 diffs)
-
layout/blockformatting/BlockFormattingContext.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r232148 r232152 1 2018-05-24 Zalan Bujtas <zalan@apple.com> 2 3 [LFC] Implement FormattingContext::placeInFlowPositionedChildren 4 https://bugs.webkit.org/show_bug.cgi?id=185934 5 6 Reviewed by Antti Koivisto. 7 8 * layout/FormattingContext.cpp: 9 (WebCore::Layout::FormattingContext::computeInFlowPositionedPosition const): 10 (WebCore::Layout::FormattingContext::placeInFlowPositionedChildren const): 11 * layout/FormattingContext.h: 12 * layout/blockformatting/BlockFormattingContext.cpp: 13 (WebCore::Layout::BlockFormattingContext::layout const): 14 1 15 2018-05-23 Joseph Pecoraro <pecoraro@apple.com> 2 16 -
trunk/Source/WebCore/layout/FormattingContext.cpp
r232114 r232152 54 54 } 55 55 56 void FormattingContext::computeInFlowPositionedPosition( const Box&, Display::Box&) const56 void FormattingContext::computeInFlowPositionedPosition(LayoutContext&, const Box&, Display::Box&) const 57 57 { 58 58 } … … 156 156 } 157 157 158 void FormattingContext::placeInFlowPositionedChildren(const Container&) const 159 { 158 void FormattingContext::placeInFlowPositionedChildren(LayoutContext& layoutContext, const Container& container) const 159 { 160 // If this container also establishes a formatting context, then positioning already has happend in that the formatting context. 161 if (container.establishesFormattingContext() && &container != &root()) 162 return; 163 164 for (auto& layoutBox : childrenOfType<Box>(container)) { 165 if (!layoutBox.isInFlowPositioned()) 166 continue; 167 computeInFlowPositionedPosition(layoutContext, layoutBox, *layoutContext.displayBoxForLayoutBox(layoutBox)); 168 } 160 169 } 161 170 -
trunk/Source/WebCore/layout/FormattingContext.h
r232114 r232152 68 68 69 69 virtual void computeStaticPosition(LayoutContext&, const Box&, Display::Box&) const; 70 virtual void computeInFlowPositionedPosition( const Box&, Display::Box&) const;70 virtual void computeInFlowPositionedPosition(LayoutContext&, const Box&, Display::Box&) const; 71 71 virtual void computeOutOfFlowPosition(LayoutContext&, const Box&, Display::Box&) const; 72 72 … … 87 87 virtual LayoutUnit marginRight(const Box&) const; 88 88 89 void placeInFlowPositionedChildren( const Container&) const;89 void placeInFlowPositionedChildren(LayoutContext&, const Container&) const; 90 90 void layoutOutOfFlowDescendants(LayoutContext&s) const; 91 91 -
trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp
r232114 r232152 102 102 auto& container = downcast<Container>(layoutBox); 103 103 // Move in-flow positioned children to their final position. 104 placeInFlowPositionedChildren( container);104 placeInFlowPositionedChildren(layoutContext, container); 105 105 if (auto* nextSibling = container.nextInFlowOrFloatingSibling()) { 106 106 layoutQueue.append(std::make_unique<LayoutPair>(LayoutPair {*nextSibling, layoutContext.createDisplayBox(*nextSibling)})); … … 110 110 } 111 111 // Place the inflow positioned children. 112 placeInFlowPositionedChildren( formattingRoot);112 placeInFlowPositionedChildren(layoutContext, formattingRoot); 113 113 // And take care of out-of-flow boxes as the final step. 114 114 layoutOutOfFlowDescendants(layoutContext);
Note:
See TracChangeset
for help on using the changeset viewer.