[webkit-changes] [WebKit/WebKit] a0dc58: [IFC][Ruby] Offset ruby base end inline item with ...

Alan Baradlay noreply at github.com
Mon Dec 4 09:19:57 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a0dc58c6d70ea710009978fe1902d03baa639cdb
      https://github.com/WebKit/WebKit/commit/a0dc58c6d70ea710009978fe1902d03baa639cdb
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-12-04 (Mon, 04 Dec 2023)

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

  Log Message:
  -----------
  [IFC][Ruby] Offset ruby base end inline item with overflowing interlinear annotation box
https://bugs.webkit.org/show_bug.cgi?id=265756

Reviewed by Antti Koivisto.

While annotation boxes don't participate in inline layout, when placing the associated base content
on the line, we have to make sure the base inline box end "covers" any overflowing interlinear annotation.

e.g.
"<ruby>base content<rt>this is a long annotation</rt></ruby>after ruby content" does not produce this:

[this is a long annotation]
[base content][after ruby content]      <- line content.

but something along the lines of

[this is a long annotation]
[base content]             [after ruby content]

(ignore ruby base alignment for now)

* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::candidateContentForLine):
* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp:
(WebCore::Layout::RubyFormattingContext::baseLogicalWidthFromRubyBaseEnd):
* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.h:

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




More information about the webkit-changes mailing list