[webkit-changes] [WebKit/WebKit] 4f0b33: [css-line-clamp] Start using block-ellipsis string...

Alan Baradlay noreply at github.com
Fri Aug 30 08:46:43 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4f0b33767232df45035b1bba7f0dc95c75089b04
      https://github.com/WebKit/WebKit/commit/4f0b33767232df45035b1bba7f0dc95c75089b04
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2024-08-30 (Fri, 30 Aug 2024)

  Changed paths:
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLayoutState.h
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLine.h
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h
    M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
    M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
    M Source/WebCore/layout/integration/inline/InlineIteratorLineBoxModernPath.h

  Log Message:
  -----------
  [css-line-clamp] Start using block-ellipsis string for ellipsis content
https://bugs.webkit.org/show_bug.cgi?id=278863

Reviewed by Antti Koivisto.

1. Ellipsis content is either '...' (overflow in inline direction and legacy line clamp)
or supplied by 'block-ellipsis' css property (could be none, meaning no change to rendering other than truncation in block direction)
2. InlineDisplay::Line now has Ellipsis struct containing all ellipsis related content.

* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::createDisplayContentForInlineContent):
* Source/WebCore/layout/formattingContexts/inline/InlineLayoutState.h:
(WebCore::Layout::InlineLayoutState::setLegacyClampedLineIndex):
(WebCore::Layout::InlineLayoutState::legacyClampedLineIndex const):
(WebCore::Layout::InlineLayoutState::setClampedLineIndex): Deleted.
(WebCore::Layout::InlineLayoutState::clampedLineIndex const): Deleted.
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLine.h:
(WebCore::InlineDisplay::Line::setEllipsis):
(WebCore::InlineDisplay::Line::ellipsis const):
(WebCore::InlineDisplay::Line::hasEllipsis const):
(WebCore::InlineDisplay::Line::isFullyTruncatedInBlockDirection const):
(WebCore::InlineDisplay::Line::moveInBlockDirection):
(WebCore::InlineDisplay::Line::visibleRectIgnoringBlockDirection const):
(WebCore::InlineDisplay::Line::ellipsisVisualRect const): Deleted.
(WebCore::InlineDisplay::Line::ellipsisText const): Deleted.
(WebCore::InlineDisplay::Line::setEllipsisVisualRect): Deleted.
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::trailingEllipsisVisualRectAfterTruncation):
(WebCore::Layout::makeRoomForLinkBoxOnClampedLineIfNeeded):
(WebCore::Layout::moveDisplayBoxToClampedLine):
(WebCore::Layout::InlineDisplayLineBuilder::addLegacyLineClampTrailingLinkBoxIfApplicable):
(WebCore::Layout::InlineDisplayLineBuilder::applyEllipsisIfNeeded):
(WebCore::Layout::InlineDisplayLineBuilder::trailingEllipsisVisualRectAfterTruncation): Deleted.
(WebCore::Layout::InlineDisplayLineBuilder::addLineClampTrailingLinkBoxIfApplicable): Deleted.
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h:
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::ellipsisTextInInlineDirection):
(WebCore::Layout::TextUtil::ellipsisTextRun): Deleted.
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h:
* Source/WebCore/layout/integration/inline/InlineIteratorLineBoxModernPath.h:
(WebCore::InlineIterator::LineBoxIteratorModernPath::ellipsisVisualRectIgnoringBlockDirection const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::ellipsisText const):

Canonical link: https://commits.webkit.org/282973@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