Changeset 285860 in webkit
- Timestamp:
- Nov 16, 2021, 7:07:51 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
layout/formattingContexts/inline/InlineLineBuilder.cpp (modified) (3 diffs)
-
layout/formattingContexts/inline/InlineLineBuilder.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r285858 r285860 1 2021-11-16 Alan Bujtas <zalan@apple.com> 2 3 [LFC][IFC] Fix fast/text/text-indent-inside-float.html 4 https://bugs.webkit.org/show_bug.cgi?id=233163 5 6 Reviewed by Antti Koivisto. 7 8 Percentages must be treated as 0 for the purpose of calculating intrinsic size contributions. 9 https://drafts.csswg.org/css-text/#text-indent-property 10 11 Note that this patch is in preparation for enabling IFC preferred width computation. 12 13 * layout/formattingContexts/inline/InlineLineBuilder.cpp: 14 (WebCore::Layout::LineBuilder::LineBuilder): 15 (WebCore::Layout::LineBuilder::initialConstraintsForLine const): 16 * layout/formattingContexts/inline/InlineLineBuilder.h: Add an "intrinsic mode" which will also be used 17 for other, preferred width computation specific properties and values. 18 1 19 2021-11-16 Chris Lord <clord@igalia.com> 2 20 -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
r285806 r285860 269 269 } 270 270 271 LineBuilder::LineBuilder(InlineFormattingContext& inlineFormattingContext, FloatingState& floatingState, HorizontalConstraints rootHorizontalConstraints, const InlineItems& inlineItems) 272 : m_inlineFormattingContext(inlineFormattingContext) 271 LineBuilder::LineBuilder(InlineFormattingContext& inlineFormattingContext, FloatingState& floatingState, HorizontalConstraints rootHorizontalConstraints, const InlineItems& inlineItems, IsIntrinsicWidthMode isIntrinsicWidthMode) 272 : m_isIntrinsicWidthMode(isIntrinsicWidthMode == IsIntrinsicWidthMode::Yes) 273 , m_inlineFormattingContext(inlineFormattingContext) 273 274 , m_inlineFormattingState(&inlineFormattingContext.formattingState()) 274 275 , m_floatingState(&floatingState) … … 279 280 } 280 281 281 LineBuilder::LineBuilder(const InlineFormattingContext& inlineFormattingContext, const InlineItems& inlineItems) 282 : m_inlineFormattingContext(inlineFormattingContext) 282 LineBuilder::LineBuilder(const InlineFormattingContext& inlineFormattingContext, const InlineItems& inlineItems, IsIntrinsicWidthMode isIntrinsicWidthMode) 283 : m_isIntrinsicWidthMode(isIntrinsicWidthMode == IsIntrinsicWidthMode::Yes) 284 , m_inlineFormattingContext(inlineFormattingContext) 283 285 , m_line(inlineFormattingContext) 284 286 , m_inlineItems(inlineItems) … … 548 550 if (textIndent == RenderStyle::initialTextIndent()) 549 551 return { }; 552 if (m_isIntrinsicWidthMode && textIndent.isPercent()) { 553 // Percentages must be treated as 0 for the purpose of calculating intrinsic size contributions. 554 // https://drafts.csswg.org/css-text/#text-indent-property 555 return { }; 556 } 550 557 return { minimumValueForLength(textIndent, initialLineLogicalRect.width()) }; 551 558 }; -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h
r285806 r285860 40 40 class LineBuilder { 41 41 public: 42 LineBuilder(InlineFormattingContext&, FloatingState&, HorizontalConstraints rootHorizontalConstraints, const InlineItems&); 43 LineBuilder(const InlineFormattingContext&, const InlineItems&); 42 enum class IsIntrinsicWidthMode { No, Yes }; 43 LineBuilder(InlineFormattingContext&, FloatingState&, HorizontalConstraints rootHorizontalConstraints, const InlineItems&, IsIntrinsicWidthMode = IsIntrinsicWidthMode::No); 44 LineBuilder(const InlineFormattingContext&, const InlineItems&, IsIntrinsicWidthMode = IsIntrinsicWidthMode::Yes); 44 45 45 46 struct InlineItemRange { … … 121 122 private: 122 123 bool m_isFirstLine { false }; 124 bool m_isIntrinsicWidthMode { false }; 123 125 const InlineFormattingContext& m_inlineFormattingContext; 124 126 InlineFormattingState* m_inlineFormattingState { nullptr };
Note:
See TracChangeset
for help on using the changeset viewer.