[webkit-changes] [WebKit/WebKit] b4ea8a: [IFC][Ruby] Add support for soft wrap opportunitie...

Alan Baradlay noreply at github.com
Sun Sep 24 20:37:10 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b4ea8abad3e2450857984bb5abc1c7d6fbcf278d
      https://github.com/WebKit/WebKit/commit/b4ea8abad3e2450857984bb5abc1c7d6fbcf278d
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-09-24 (Sun, 24 Sep 2023)

  Changed paths:
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp
    M Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.h

  Log Message:
  -----------
  [IFC][Ruby] Add support for soft wrap opportunities between ruby bases
https://bugs.webkit.org/show_bug.cgi?id=261967

Reviewed by Antti Koivisto.

This patch enables line breaking insider ruby containers, between ruby bases.

1. Move nextWrapOpportunity logic to RubyFormattingContext (IFC consults RubyFormattingContext for next wrap opportunity now)
2. Measure ruby to decide whether we can only fit partial (ruby base) content.

* Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::InlineFormattingGeometry::nextWrapOpportunity):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::handleRubyContent):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::handleInlineBoxEnd):
* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp:
(WebCore::Layout::nextWrapOpportunityWithinRubyContainer):
(WebCore::Layout::RubyFormattingContext::layoutInlineAxis):
(WebCore::Layout::RubyFormattingContext::placeRubyContent):
(WebCore::Layout::RubyFormattingContext::nextWrapOpportunity):
(WebCore::Layout::RubyFormattingContext::logicaWidthForRubyRange const):
* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.h:

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




More information about the webkit-changes mailing list