Changeset 252869 in webkit
- Timestamp:
- Nov 25, 2019 4:28:18 PM (4 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r252868 r252869 1 2019-11-25 Zalan Bujtas <zalan@apple.com> 2 3 [LFC][IFC] Use FontCascade::spaceWidth to measure single or collapsed whitespace content 4 https://bugs.webkit.org/show_bug.cgi?id=204594 5 <rdar://problem/57478360> 6 7 Reviewed by Antti Koivisto. 8 9 * layout/inlineformatting/InlineTextItem.cpp: 10 (WebCore::Layout::InlineTextItem::createAndAppendTextItems): 11 1 12 2019-11-25 Antti Koivisto <antti@apple.com> 2 13 -
trunk/Source/WebCore/layout/inlineformatting/InlineTextItem.cpp
r252816 r252869 30 30 31 31 #include "BreakLines.h" 32 #include "FontCascade.h" 32 33 33 34 namespace WebCore { … … 83 84 void InlineTextItem::createAndAppendTextItems(InlineItems& inlineContent, const Box& inlineBox) 84 85 { 85 auto text = inlineBox.textContext()->content; 86 auto& textContext = *inlineBox.textContext(); 87 auto text = textContext.content; 86 88 if (!text.length()) 87 89 return inlineContent.append(InlineTextItem::createEmptyItem(inlineBox)); 88 90 89 91 auto& style = inlineBox.style(); 92 auto& font = style.fontCascade(); 90 93 LazyLineBreakIterator lineBreakIterator(text); 91 94 unsigned currentPosition = 0; 92 95 93 96 auto inlineItemWidth = [&](auto startPosition, auto length) -> Optional<LayoutUnit> { 94 if (! inlineBox.textContext()->canUseSimplifiedContentMeasuring)97 if (!textContext.canUseSimplifiedContentMeasuring) 95 98 return { }; 96 99 return TextUtil::width(inlineBox, startPosition, startPosition + length); … … 112 115 if (isWhitespaceCharacter(text[currentPosition])) { 113 116 auto length = moveToNextNonWhitespacePosition(text, currentPosition); 114 inlineContent.append(InlineTextItem::createWhitespaceItem(inlineBox, currentPosition, length, inlineItemWidth(currentPosition, length))); 117 auto simpleSingleWhitespaceContent = textContext.canUseSimplifiedContentMeasuring && (length == 1 || style.collapseWhiteSpace()); 118 auto width = simpleSingleWhitespaceContent ? makeOptional(LayoutUnit { font.spaceWidth() }) : inlineItemWidth(currentPosition, length); 119 inlineContent.append(InlineTextItem::createWhitespaceItem(inlineBox, currentPosition, length, width)); 115 120 currentPosition += length; 116 121 continue;
Note: See TracChangeset
for help on using the changeset viewer.