Title: [289859] trunk/Source/WebCore
Revision
289859
Author
[email protected]
Date
2022-02-15 15:59:40 -0800 (Tue, 15 Feb 2022)

Log Message

Skip positioned objects and line break boxes as they have no affect on width
https://bugs.webkit.org/show_bug.cgi?id=236514

Patch by Brandon Stewart <[email protected]> on 2022-02-15
Reviewed by Myles C. Maxfield.

Align computeInlineDirectionPositionsForSegment() and computeExpansionForJustifiedText() logic.
Skipping positioned objects and line break boxes as they will not affect the width.

* rendering/LegacyLineLayout.cpp:
(WebCore::LegacyLineLayout::computeExpansionForJustifiedText):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (289858 => 289859)


--- trunk/Source/WebCore/ChangeLog	2022-02-15 23:56:00 UTC (rev 289858)
+++ trunk/Source/WebCore/ChangeLog	2022-02-15 23:59:40 UTC (rev 289859)
@@ -1,3 +1,16 @@
+2022-02-15  Brandon Stewart  <[email protected]>
+
+        Skip positioned objects and line break boxes as they have no affect on width
+        https://bugs.webkit.org/show_bug.cgi?id=236514
+
+        Reviewed by Myles C. Maxfield.
+
+        Align computeInlineDirectionPositionsForSegment() and computeExpansionForJustifiedText() logic.
+        Skipping positioned objects and line break boxes as they will not affect the width. 
+
+        * rendering/LegacyLineLayout.cpp:
+        (WebCore::LegacyLineLayout::computeExpansionForJustifiedText):
+
 2022-02-15  Fujii Hironori  <[email protected]>
 
         [TextureMapperGL] drop-shadow filter with blur-radius doesn't work as expected if it is the last filter

Modified: trunk/Source/WebCore/rendering/LegacyLineLayout.cpp (289858 => 289859)


--- trunk/Source/WebCore/rendering/LegacyLineLayout.cpp	2022-02-15 23:56:00 UTC (rev 289858)
+++ trunk/Source/WebCore/rendering/LegacyLineLayout.cpp	2022-02-15 23:59:40 UTC (rev 289859)
@@ -607,7 +607,12 @@
     for (BidiRun* run = firstRun; run; run = run->next()) {
         if (!run->box() || run == trailingSpaceRun)
             continue;
-        
+
+        // Positioned objects are only participating to figure out their correct static x position.
+        // They have no affect on the width. Similarly, line break boxes have no affect on the width.
+        if (run->renderer().isOutOfFlowPositioned() || run->box()->isLineBreak())
+            continue;
+
         if (is<RenderText>(run->renderer())) {
             unsigned opportunitiesInRun = expansionOpportunities[i++];
             
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to