Changeset 247350 in webkit
- Timestamp:
- Jul 11, 2019, 7:09:55 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r247349 r247350 1 2019-07-11 Zalan Bujtas <[email protected]> 2 3 [LFC][IFC] Cleanup InlineFormattingContext::LineLayout class. 4 https://bugs.webkit.org/show_bug.cgi?id=199702 5 <rdar://problem/52931733> 6 7 Reviewed by Sam Weinig. 8 9 Move some structs to .cpp. They don't need to pollute the class declaration. 10 11 * layout/inlineformatting/InlineFormattingContext.h: 12 (WebCore::Layout::InlineFormattingContext::LineLayout::layoutState const): 13 (): Deleted. 14 * layout/inlineformatting/InlineFormattingContextLineLayout.cpp: 15 (WebCore::Layout::LineInput::HorizontalConstraint::HorizontalConstraint): 16 (WebCore::Layout::LineInput::LineInput): 17 (WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const): 18 (WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::HorizontalConstraint::HorizontalConstraint): Deleted. 19 (WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::LineInput): Deleted. 20 1 21 2019-07-11 Joanmarie Diggs <[email protected]> 2 22 -
trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h
r247299 r247350 39 39 class FloatingState; 40 40 class InlineContainer; 41 struct LineContent; 42 struct LineInput; 41 43 42 44 // This class implements the layout logic for inline formatting contexts. … … 59 61 private: 60 62 LayoutState& layoutState() const { return m_layoutState; } 61 62 struct InlineIndexAndSplitPosition {63 unsigned index { 0 };64 Optional<unsigned> splitPosition;65 };66 67 struct LineInput {68 LineInput(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth, Line::SkipVerticalAligment, InlineIndexAndSplitPosition firstToProcess, const InlineItems&);69 struct HorizontalConstraint {70 HorizontalConstraint(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth);71 72 LayoutPoint logicalTopLeft;73 LayoutUnit availableLogicalWidth;74 };75 HorizontalConstraint horizontalConstraint;76 // FIXME Alternatively we could just have a second pass with vertical positioning (preferred width computation opts out)77 Line::SkipVerticalAligment skipVerticalAligment;78 InlineIndexAndSplitPosition firstInlineItem;79 const InlineItems& inlineItems;80 Optional<LayoutUnit> floatMinimumLogicalBottom;81 };82 83 struct LineContent {84 Optional<InlineIndexAndSplitPosition> lastCommitted;85 Vector<WeakPtr<InlineItem>> floats;86 std::unique_ptr<Line::Content> runs;87 };88 63 LineContent placeInlineItems(const LineInput&) const; 89 64 void createDisplayRuns(const Line::Content&, const Vector<WeakPtr<InlineItem>>& floats, LayoutUnit widthConstraint) const; -
trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp
r247299 r247350 42 42 namespace Layout { 43 43 44 struct InlineIndexAndSplitPosition { 45 unsigned index { 0 }; 46 Optional<unsigned> splitPosition; 47 }; 48 49 struct LineInput { 50 LineInput(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth, Line::SkipVerticalAligment, InlineIndexAndSplitPosition firstToProcess, const InlineItems&); 51 struct HorizontalConstraint { 52 HorizontalConstraint(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth); 53 54 LayoutPoint logicalTopLeft; 55 LayoutUnit availableLogicalWidth; 56 }; 57 HorizontalConstraint horizontalConstraint; 58 // FIXME Alternatively we could just have a second pass with vertical positioning (preferred width computation opts out) 59 Line::SkipVerticalAligment skipVerticalAligment; 60 InlineIndexAndSplitPosition firstInlineItem; 61 const InlineItems& inlineItems; 62 Optional<LayoutUnit> floatMinimumLogicalBottom; 63 }; 64 65 struct LineContent { 66 Optional<InlineIndexAndSplitPosition> lastCommitted; 67 Vector<WeakPtr<InlineItem>> floats; 68 std::unique_ptr<Line::Content> runs; 69 }; 70 44 71 struct UncommittedContent { 45 72 struct Run { … … 73 100 } 74 101 75 InlineFormattingContext::LineLayout::LineInput::HorizontalConstraint::HorizontalConstraint(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth)102 LineInput::HorizontalConstraint::HorizontalConstraint(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth) 76 103 : logicalTopLeft(logicalTopLeft) 77 104 , availableLogicalWidth(availableLogicalWidth) … … 79 106 } 80 107 81 InlineFormattingContext::LineLayout::LineInput::LineInput(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth, Line::SkipVerticalAligment skipVerticalAligment, InlineIndexAndSplitPosition firstToProcess, const InlineItems& inlineItems)108 LineInput::LineInput(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth, Line::SkipVerticalAligment skipVerticalAligment, InlineIndexAndSplitPosition firstToProcess, const InlineItems& inlineItems) 82 109 : horizontalConstraint(logicalTopLeft, availableLogicalWidth) 83 110 , skipVerticalAligment(skipVerticalAligment) … … 124 151 } 125 152 126 InlineFormattingContext::LineLayout::LineContent InlineFormattingContext::LineLayout::placeInlineItems(const LineInput& lineInput) const153 LineContent InlineFormattingContext::LineLayout::placeInlineItems(const LineInput& lineInput) const 127 154 { 128 155 auto initialLineConstraints = Line::InitialConstraints {
Note:
See TracChangeset
for help on using the changeset viewer.