[webkit-changes] [WebKit/WebKit] d8e284: [IFC][Ruby] Exclude inter-character annotation box...

Alan Baradlay noreply at github.com
Mon Oct 30 05:28:50 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d8e2845bfd78f992359ea9d66247ee9114fe238a
      https://github.com/WebKit/WebKit/commit/d8e2845bfd78f992359ea9d66247ee9114fe238a
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

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

  Log Message:
  -----------
  [IFC][Ruby] Exclude inter-character annotation box from inline items
https://bugs.webkit.org/show_bug.cgi?id=263860

Reviewed by Antti Koivisto.

While originally it seemed like a good idea to treat inter-character annotation box as regular
atomic inline level box and let inline layout take care of (inline direction) positioning,
it let regular inline CSS properties leak into it (e.g. letter spacing).
This patch turns inter-character handling very much like interlinear. It also helps reason
about not having any type of annotation box part of inline items.

* LayoutTests/fast/ruby/bopomofo-letter-spacing.html:
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::handleInlineLevelBox):
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::handleInlineBoxEnd):
(WebCore::Layout::InlineDisplayContentBuilder::appendRubyAnnotationBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInterlinearRubyAnnotationBox): Deleted.
(WebCore::Layout::InlineDisplayContentBuilder::appendIntercharacterRubyAnnotationBox): Deleted.
* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
* Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp:
(WebCore::Layout::RubyFormattingContext::placeRubyContent):
(WebCore::Layout::RubyFormattingContext::logicaWidthForRubyRange const):

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




More information about the webkit-changes mailing list