⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 283275 in webkit


Ignore:
Timestamp:
Sep 29, 2021, 4:27:35 PM (5 years ago)
Author:
Alan Bujtas
Message:

[LFC][IFC] Use the first-line style when measuring text content when applicable
https://bugs.webkit.org/show_bug.cgi?id=230925

Reviewed by Antti Koivisto.

Disable "simplified content measuring" when first-style is present.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::inlineItemWidth const):

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::createAndAppendTextItems):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r283274 r283275  
     12021-09-29  Alan Bujtas  <zalan@apple.com>
     2
     3        [LFC][IFC] Use the first-line style when measuring text content when applicable
     4        https://bugs.webkit.org/show_bug.cgi?id=230925
     5
     6        Reviewed by Antti Koivisto.
     7
     8        Disable "simplified content measuring" when first-style is present.
     9
     10        * layout/formattingContexts/inline/InlineLineBuilder.cpp:
     11        (WebCore::Layout::LineBuilder::inlineItemWidth const):
     12        * layout/formattingContexts/inline/InlineTextItem.cpp:
     13        (WebCore::Layout::InlineTextItem::createAndAppendTextItems):
     14
    1152021-09-29  Chris Dumez  <cdumez@apple.com>
    216
  • trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp

    r283255 r283275  
    218218    if (is<InlineTextItem>(inlineItem)) {
    219219        auto& inlineTextItem = downcast<InlineTextItem>(inlineItem);
    220         auto& fontCascade = inlineTextItem.layoutBox().style().fontCascade();
    221         if (auto contentWidth = inlineTextItem.width())
     220        if (auto contentWidth = inlineTextItem.width()) {
     221            ASSERT(inlineTextItem.firstLineStyle() == inlineTextItem.style());
    222222            return *contentWidth;
     223        }
     224        auto& fontCascade = m_isFirstLine ? inlineTextItem.firstLineStyle().fontCascade() : inlineTextItem.style().fontCascade();
    223225        if (!inlineTextItem.isWhitespace() || InlineTextItem::shouldPreserveSpacesAndTabs(inlineTextItem))
    224226            return TextUtil::width(inlineTextItem, fontCascade, contentLogicalLeft);
  • trunk/Source/WebCore/layout/formattingContexts/inline/InlineTextItem.cpp

    r283080 r283275  
    8989        if (!inlineTextBox.canUseSimplifiedContentMeasuring())
    9090            return { };
     91        if (inlineTextBox.style() != inlineTextBox.firstLineStyle())
     92            return { };
    9193        return TextUtil::width(inlineTextBox, fontCascade, startPosition, startPosition + length, { });
    9294    };
Note: See TracChangeset for help on using the changeset viewer.