Title: [285926] trunk/Source/WebCore
Revision
285926
Author
[email protected]
Date
2021-11-17 06:23:40 -0800 (Wed, 17 Nov 2021)

Log Message

[LFC][IFC] LineBuilder should drive the trailing whitespace collapsing/trimming
https://bugs.webkit.org/show_bug.cgi?id=233233

Reviewed by Antti Koivisto.

This is in preparation for adding min/max intrinsic handling to trailing whitespace content.

* layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::visuallyCollapseHangingOverflowingWhitespace): Use spec term.
(WebCore::Layout::Line::removeTrimmableContent): Deleted.
(WebCore::Layout::Line::visuallyCollapseHangingOverflow): Deleted.
* layout/formattingContexts/inline/InlineLine.h:
* layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::close):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (285925 => 285926)


--- trunk/Source/WebCore/ChangeLog	2021-11-17 14:19:54 UTC (rev 285925)
+++ trunk/Source/WebCore/ChangeLog	2021-11-17 14:23:40 UTC (rev 285926)
@@ -1,5 +1,22 @@
 2021-11-17  Alan Bujtas  <[email protected]>
 
+        [LFC][IFC] LineBuilder should drive the trailing whitespace collapsing/trimming
+        https://bugs.webkit.org/show_bug.cgi?id=233233
+
+        Reviewed by Antti Koivisto.
+
+        This is in preparation for adding min/max intrinsic handling to trailing whitespace content.
+
+        * layout/formattingContexts/inline/InlineLine.cpp:
+        (WebCore::Layout::Line::visuallyCollapseHangingOverflowingWhitespace): Use spec term.
+        (WebCore::Layout::Line::removeTrimmableContent): Deleted.
+        (WebCore::Layout::Line::visuallyCollapseHangingOverflow): Deleted.
+        * layout/formattingContexts/inline/InlineLine.h:
+        * layout/formattingContexts/inline/InlineLineBuilder.cpp:
+        (WebCore::Layout::LineBuilder::close):
+
+2021-11-17  Alan Bujtas  <[email protected]>
+
         [IFC][Integration] Clear the preferredLogicalWidths dirty bits after calling LineLayout::computeIntrinsicWidthConstraints
         https://bugs.webkit.org/show_bug.cgi?id=233201
 

Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp (285925 => 285926)


--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp	2021-11-17 14:19:54 UTC (rev 285925)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp	2021-11-17 14:23:40 UTC (rev 285926)
@@ -90,12 +90,6 @@
     m_trailingSoftHyphenWidth = { };
 }
 
-void Line::removeTrimmableContent(InlineLayoutUnit horizontalAvailableSpace)
-{
-    removeTrailingTrimmableContent();
-    visuallyCollapseHangingOverflow(horizontalAvailableSpace);
-}
-
 void Line::applyRunExpansion(InlineLayoutUnit horizontalAvailableSpace)
 {
     ASSERT(formattingContext().root().style().textAlign() == TextAlignMode::Justify);
@@ -202,7 +196,7 @@
     m_contentLogicalWidth -= m_trimmableTrailingContent.remove();
 }
 
-void Line::visuallyCollapseHangingOverflow(InlineLayoutUnit horizontalAvailableSpace)
+void Line::visuallyCollapseHangingOverflowingGlyphs(InlineLayoutUnit horizontalAvailableSpace)
 {
     ASSERT(m_trimmableTrailingContent.isEmpty());
     // If white-space is set to pre-wrap, the UA must

Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.h (285925 => 285926)


--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.h	2021-11-17 14:19:54 UTC (rev 285925)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLine.h	2021-11-17 14:23:40 UTC (rev 285926)
@@ -63,7 +63,8 @@
     std::optional<InlineLayoutUnit> trailingSoftHyphenWidth() const { return m_trailingSoftHyphenWidth; }
     void addTrailingHyphen(InlineLayoutUnit hyphenLogicalWidth);
 
-    void removeTrimmableContent(InlineLayoutUnit horizontalAvailableSpace);
+    void removeTrailingTrimmableContent();
+    void visuallyCollapseHangingOverflowingGlyphs(InlineLayoutUnit horizontalAvailableSpace);
     void applyRunExpansion(InlineLayoutUnit horizontalAvailableSpace);
 
     struct Run {
@@ -178,8 +179,6 @@
 
     InlineLayoutUnit addBorderAndPaddingEndForInlineBoxDecorationClone(const InlineItem& inlineBoxStartItem);
     InlineLayoutUnit removeBorderAndPaddingEndForInlineBoxDecorationClone(const InlineItem& inlineBoxEndItem);
-    void removeTrailingTrimmableContent();
-    void visuallyCollapseHangingOverflow(InlineLayoutUnit horizontalAvailableSpace);
 
     void resetTrailingContent();
 

Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp (285925 => 285926)


--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp	2021-11-17 14:19:54 UTC (rev 285925)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp	2021-11-17 14:23:40 UTC (rev 285926)
@@ -457,7 +457,8 @@
         return lineRange;
     }
     auto horizontalAvailableSpace = m_lineLogicalRect.width();
-    m_line.removeTrimmableContent(horizontalAvailableSpace);
+    m_line.removeTrailingTrimmableContent();
+    m_line.visuallyCollapseHangingOverflowingGlyphs(horizontalAvailableSpace);
     auto horizontalAlignment = root().style().textAlign();
     auto runsExpandHorizontally = horizontalAlignment == TextAlignMode::Justify && !isLastLineWithInlineContent(lineRange, needsLayoutRange.end, committedContent.partialTrailingContentLength);
     if (runsExpandHorizontally)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to