Title: [289707] trunk/Source/WebCore
Revision
289707
Author
[email protected]
Date
2022-02-13 06:38:31 -0800 (Sun, 13 Feb 2022)

Log Message

[LFC][Integration] Take writing mode value into account setting vertical margin
https://bugs.webkit.org/show_bug.cgi?id=236538

Reviewed by Antti Koivisto.

Line layout works with logical values.

* layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::horizontalLogicalMargin):
(WebCore::LayoutIntegration::verticalLogicalMargin):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
(WebCore::LayoutIntegration::logicalMargin): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (289706 => 289707)


--- trunk/Source/WebCore/ChangeLog	2022-02-13 12:21:50 UTC (rev 289706)
+++ trunk/Source/WebCore/ChangeLog	2022-02-13 14:38:31 UTC (rev 289707)
@@ -1,3 +1,19 @@
+2022-02-13  Alan Bujtas  <[email protected]>
+
+        [LFC][Integration] Take writing mode value into account setting vertical margin
+        https://bugs.webkit.org/show_bug.cgi?id=236538
+
+        Reviewed by Antti Koivisto.
+
+        Line layout works with logical values.
+
+        * layout/integration/LayoutIntegrationLineLayout.cpp:
+        (WebCore::LayoutIntegration::horizontalLogicalMargin):
+        (WebCore::LayoutIntegration::verticalLogicalMargin):
+        (WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
+        (WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
+        (WebCore::LayoutIntegration::logicalMargin): Deleted.
+
 2022-02-13  Antti Koivisto  <[email protected]>
 
         [CSS Container Queries] Add separate ContainerQuery and FilteredContainerQuery types

Modified: trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp (289706 => 289707)


--- trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp	2022-02-13 12:21:50 UTC (rev 289706)
+++ trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp	2022-02-13 14:38:31 UTC (rev 289707)
@@ -158,7 +158,7 @@
     return renderer.parent()->style().isHorizontalWritingMode() ? renderer.contentHeight() : renderer.contentWidth();
 }
 
-static inline Layout::BoxGeometry::HorizontalMargin logicalMargin(const RenderBoxModelObject& renderer, bool isLeftToRightDirection, bool isHorizontalWritingMode, bool retainMarginStart = true, bool retainMarginEnd = true)
+static inline Layout::BoxGeometry::HorizontalMargin horizontalLogicalMargin(const RenderBoxModelObject& renderer, bool isLeftToRightDirection, bool isHorizontalWritingMode, bool retainMarginStart = true, bool retainMarginEnd = true)
 {
     auto marginLeft = renderer.marginLeft();
     auto marginRight = renderer.marginRight();
@@ -175,6 +175,13 @@
     return { retainMarginStart ? marginBottom : 0_lu, retainMarginEnd ? marginTop : 0_lu };
 }
 
+static inline Layout::BoxGeometry::VerticalMargin verticalLogicalMargin(const RenderBoxModelObject& renderer, bool isHorizontalWritingMode)
+{
+    if (isHorizontalWritingMode)
+        return { renderer.marginTop(), renderer.marginBottom() };
+    return { renderer.marginRight(), renderer.marginLeft() };
+}
+
 static inline Layout::Edges logicalBorder(const RenderBoxModelObject& renderer, bool isLeftToRightDirection, bool isHorizontalWritingMode, bool retainBorderStart = true, bool retainBorderEnd = true)
 {
     auto borderLeft = renderer.borderLeft();
@@ -230,11 +237,11 @@
     replacedBoxGeometry.setContentBoxWidth(contentLogicalWidthForRenderer(replacedOrInlineBlock));
     replacedBoxGeometry.setContentBoxHeight(contentLogicalHeightForRenderer(replacedOrInlineBlock));
 
-    replacedBoxGeometry.setVerticalMargin({ replacedOrInlineBlock.marginTop(), replacedOrInlineBlock.marginBottom() });
     auto isLeftToRightDirection = replacedOrInlineBlock.parent()->style().isLeftToRightDirection();
     auto isHorizontalWritingMode = replacedOrInlineBlock.parent()->style().isHorizontalWritingMode();
 
-    replacedBoxGeometry.setHorizontalMargin(logicalMargin(replacedOrInlineBlock, isLeftToRightDirection, isHorizontalWritingMode));
+    replacedBoxGeometry.setVerticalMargin(verticalLogicalMargin(replacedOrInlineBlock, isHorizontalWritingMode));
+    replacedBoxGeometry.setHorizontalMargin(horizontalLogicalMargin(replacedOrInlineBlock, isLeftToRightDirection, isHorizontalWritingMode));
     replacedBoxGeometry.setBorder(logicalBorder(replacedOrInlineBlock, isLeftToRightDirection, isHorizontalWritingMode));
     replacedBoxGeometry.setPadding(logicalPadding(replacedOrInlineBlock, isLeftToRightDirection, isHorizontalWritingMode));
 
@@ -266,7 +273,7 @@
     auto isLeftToRightDirection = renderInline.style().isLeftToRightDirection();
     auto isHorizontalWritingMode = renderInline.style().isHorizontalWritingMode();
 
-    boxGeometry.setHorizontalMargin(logicalMargin(renderInline, isLeftToRightDirection, isHorizontalWritingMode, !shouldNotRetainBorderPaddingAndMarginStart, !shouldNotRetainBorderPaddingAndMarginEnd));
+    boxGeometry.setHorizontalMargin(horizontalLogicalMargin(renderInline, isLeftToRightDirection, isHorizontalWritingMode, !shouldNotRetainBorderPaddingAndMarginStart, !shouldNotRetainBorderPaddingAndMarginEnd));
     boxGeometry.setBorder(logicalBorder(renderInline, isLeftToRightDirection, isHorizontalWritingMode, !shouldNotRetainBorderPaddingAndMarginStart, !shouldNotRetainBorderPaddingAndMarginEnd));
     boxGeometry.setPadding(logicalPadding(renderInline, isLeftToRightDirection, isHorizontalWritingMode, !shouldNotRetainBorderPaddingAndMarginStart, !shouldNotRetainBorderPaddingAndMarginEnd));
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to