[webkit-changes] [WebKit/WebKit] db30cc: text-autospace: Trim spacing between text runs pla...

Vitor Roriz noreply at github.com
Thu Nov 14 21:39:57 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: db30cc63c7ac0e8a61e33b2dcf0b5089e46e3482
      https://github.com/WebKit/WebKit/commit/db30cc63c7ac0e8a61e33b2dcf0b5089e46e3482
  Author: Vitor Roriz <vitor.roriz at apple.com>
  Date:   2024-11-14 (Thu, 14 Nov 2024)

  Changed paths:
    M LayoutTests/TestExpectations
    M Source/WebCore/layout/formattingContexts/inline/InlineContentCache.h
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineTypes.h
    M Source/WebCore/layout/formattingContexts/inline/RangeBasedLineBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.cpp

  Log Message:
  -----------
  text-autospace: Trim spacing between text runs placed on different lines
https://bugs.webkit.org/show_bug.cgi?id=283079
rdar://139824338

Reviewed by Alan Baradlay.

Text content can be split into multiple different inline text items.
At this patch we use TrimmableTextSpacings in the TextSpacingContext to identify spacing that was added to a text item because of
its adjacency to another text item.

Ex: if we have 2 text items A and B, and the last character of A and the first character of B require spacing to be added between them.
This spacing is always added as a leading spacing to B. However, during line breaking, if B gets placed on a different line as A, they
are no longer adjacent and we must trim such spacing.

* LayoutTests/TestExpectations:
* Source/WebCore/layout/formattingContexts/inline/InlineContentCache.h:
(WebCore::Layout::InlineContentCache::InlineItems::hasTextAutospace const):
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::handleTextSpacing):
(WebCore::Layout::InlineItemsBuilder::computeInlineTextItemWidths):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::candidateContentForLine):
* Source/WebCore/layout/formattingContexts/inline/InlineLineTypes.h:
* Source/WebCore/layout/formattingContexts/inline/RangeBasedLineBuilder.cpp:
(WebCore::Layout::RangeBasedLineBuilder::isEligibleForRangeInlineLayout):
* Source/WebCore/layout/formattingContexts/inline/TextOnlySimpleLineBuilder.cpp:
(WebCore::Layout::TextOnlySimpleLineBuilder::isEligibleForSimplifiedTextOnlyInlineLayoutByContent):

Canonical link: https://commits.webkit.org/286630@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list