Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a10f5772f6a2343c601e3a7982b193ec58641c5f
      
https://github.com/WebKit/WebKit/commit/a10f5772f6a2343c601e3a7982b193ec58641c5f
  Author: Vitor Roriz <[email protected]>
  Date:   2024-08-30 (Fri, 30 Aug 2024)

  Changed paths:
    M Source/WebCore/layout/formattingContexts/inline/InlineContentCache.h
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.h

  Log Message:
  -----------
  text-spacing: text-autospace: Fix 
computeInlineBoxBoundaryTextSpacingsIfNeeded to operate on InlineItemList 
before cached
https://bugs.webkit.org/show_bug.cgi?id=278917
rdar://problem/135012026

Reviewed by Alan Baradlay.

This is yet another preparation patch for text-autospace implementation across 
element
boundaries.

At [1] we have implemented the Layout part of it, which we need to fix here:

InlineItemsBuilder::computeInlineBoxBoundaryTextSpacingsIfNeeded computes text 
spacing based on InlineItemList.
It currently uses the list cached as InlineContentCache, however, at that point 
in InlineItemsBuilder::build
we haven't yet cached such list. We need to use the list being prepared by 
::build.

Our current HashMap for tracking such spacings (InlineBoxBoundaryTextSpacings) 
maps from Index to spacings.
Index can be 0 and in such cases HashMap needs traits for being able to 
differentiate between a empty key
and a 0-value key.

InlineBoxBoundaryTextSpacings maps using indexes of InlineStartBox on 
InlineItemList. This will be used
on future for moving the display box correspondent to the InlineStartBox to the 
"logical right". However,
during Layout we don't have a notion of placement yet, so we make this spacing 
contribute to the
InlineTextItem's width instead, since the InlineStartBox's width is currently 
not taken into consideration
during layout.

* Source/WebCore/layout/formattingContexts/inline/InlineContentCache.h:
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::InlineItemsBuilder::computeInlineBoxBoundaryTextSpacingsIfNeeded):
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to