Changeset 285806 in webkit
- Timestamp:
- Nov 15, 2021, 6:47:03 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
layout/formattingContexts/inline/InlineFormattingContext.cpp (modified) (1 diff)
-
layout/formattingContexts/inline/InlineLineBuilder.cpp (modified) (1 diff)
-
layout/formattingContexts/inline/InlineLineBuilder.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r285802 r285806 1 2021-11-15 Alan Bujtas <zalan@apple.com> 2 3 [LFC][IFC] Take text-indent into account when computing preferred width 4 https://bugs.webkit.org/show_bug.cgi?id=233115 5 6 Reviewed by Antti Koivisto. 7 8 * layout/formattingContexts/inline/InlineFormattingContext.cpp: 9 (WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const): 10 * layout/formattingContexts/inline/InlineLineBuilder.cpp: 11 (WebCore::Layout::LineBuilder::computedIntrinsicWidth): 12 * layout/formattingContexts/inline/InlineLineBuilder.h: 13 1 14 2021-11-15 Enrique Ocaña González <eocanha@igalia.com> 2 15 -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
r285162 r285806 423 423 auto maximumLineWidth = InlineLayoutUnit { }; 424 424 auto maximumFloatWidth = LayoutUnit { }; 425 auto isFirstLine = true; 425 426 while (!layoutRange.isEmpty()) { 426 auto intrinsicContent = lineBuilder.computedIntrinsicWidth(layoutRange, availableWidth );427 auto intrinsicContent = lineBuilder.computedIntrinsicWidth(layoutRange, availableWidth, isFirstLine); 427 428 layoutRange.start = intrinsicContent.inlineItemRange.end; 428 429 maximumLineWidth = std::max(maximumLineWidth, intrinsicContent.logicalWidth); 430 isFirstLine = false; 429 431 // FIXME: Add support for clear. 430 432 for (auto* floatBox : intrinsicContent.floats) -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
r285629 r285806 324 324 } 325 325 326 LineBuilder::IntrinsicContent LineBuilder::computedIntrinsicWidth(const InlineItemRange& needsLayoutRange, InlineLayoutUnit availableWidth) 327 { 328 initialize({ { { }, { availableWidth, maxInlineLayoutUnit() } }, false }, false, { }, { }, { }); 326 LineBuilder::IntrinsicContent LineBuilder::computedIntrinsicWidth(const InlineItemRange& needsLayoutRange, InlineLayoutUnit availableWidth, bool isFirstLine) 327 { 328 auto lineConstraints = initialConstraintsForLine({ 0, 0, availableWidth, 0 }, isFirstLine); 329 initialize(lineConstraints, isFirstLine, needsLayoutRange.start, { }, { }); 330 329 331 auto committedContent = placeInlineContent(needsLayoutRange); 330 332 auto committedRange = close(needsLayoutRange, committedContent); 331 return { committedRange, m_line.contentLogicalWidth(), m_floats }; 333 auto lineWidth = lineConstraints.logicalRect.left() + m_line.contentLogicalWidth(); 334 return { committedRange, lineWidth, m_floats }; 332 335 } 333 336 -
trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h
r285157 r285806 72 72 const FloatList& floats; 73 73 }; 74 IntrinsicContent computedIntrinsicWidth(const InlineItemRange&, InlineLayoutUnit availableWidth );74 IntrinsicContent computedIntrinsicWidth(const InlineItemRange&, InlineLayoutUnit availableWidth, bool isFirstLine); 75 75 76 76 private:
Note:
See TracChangeset
for help on using the changeset viewer.