[webkit-changes] [WebKit/WebKit] 8b8f0c: [IFC][initial letter] Inline letter boxes can be i...

Alan Baradlay noreply at github.com
Sat Jan 7 15:02:01 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8b8f0c201eb0d1a96590a17ab6b6908f137707c0
      https://github.com/WebKit/WebKit/commit/8b8f0c201eb0d1a96590a17ab6b6908f137707c0
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-01-07 (Sat, 07 Jan 2023)

  Changed paths:
    M Source/WebCore/layout/formattingContexts/block/BlockLayoutState.h
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBlockFlow.h

  Log Message:
  -----------
  [IFC][initial letter] Inline letter boxes can be intrusive to sibling IFCs
https://bugs.webkit.org/show_bug.cgi?id=250256

Reviewed by Antti Koivisto.

This patch is in preparation for supporting -webkit-initial-letter.
While initial-letter based float boxes do not have their clear property set,
intrusive initial-letters boxes are supposed to be cleared (avoided) by other
initial-letter boxes.
e.g.

 __________________________________________________
| ________                                         |
|    |    his initial letter box sticks out of this|
|    |    container into the sibling IFC.          |
|____|_____________________________________________|
     |

 |  | ere we have another initial-letter box which is supposed to clear the intrusive one above.
 |--|
 |  |

* Source/WebCore/layout/formattingContexts/block/BlockLayoutState.h:
(WebCore::Layout::BlockLayoutState::BlockLayoutState):
(WebCore::Layout::BlockLayoutState::intrusiveInitialLetterLogicalBottom const):
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::tryPlacingFloatBox):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::blockLayoutState const):
(WebCore::Layout::LineBuilder::floatingState):
(WebCore::Layout::LineBuilder::floatingState const):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
(WebCore::RenderBlockFlow::lowestInitialLetterLogicalBottom const):
* Source/WebCore/rendering/RenderBlockFlow.h:

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




More information about the webkit-changes mailing list