Title: [287260] trunk/Source/WebCore
- Revision
- 287260
- Author
- za...@apple.com
- Date
- 2021-12-20 08:01:01 -0800 (Mon, 20 Dec 2021)
Log Message
[LFC][IFC] Adjust the atomic/generic inline level boxes with marginLeft in RTL
https://bugs.webkit.org/show_bug.cgi?id=234502
Reviewed by Antti Koivisto.
* layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (287259 => 287260)
--- trunk/Source/WebCore/ChangeLog 2021-12-20 15:11:46 UTC (rev 287259)
+++ trunk/Source/WebCore/ChangeLog 2021-12-20 16:01:01 UTC (rev 287260)
@@ -1,5 +1,16 @@
2021-12-20 Alan Bujtas <za...@apple.com>
+ [LFC][IFC] Adjust the atomic/generic inline level boxes with marginLeft in RTL
+ https://bugs.webkit.org/show_bug.cgi?id=234502
+
+ Reviewed by Antti Koivisto.
+
+ * layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
+ (WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
+ (WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
+
+2021-12-20 Alan Bujtas <za...@apple.com>
+
[LFC][IFC] InlineDisplay::Line has physical geometry
https://bugs.webkit.org/show_bug.cgi?id=234490
Modified: trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp (287259 => 287260)
--- trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp 2021-12-20 15:11:46 UTC (rev 287259)
+++ trunk/Source/WebCore/layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp 2021-12-20 16:01:01 UTC (rev 287260)
@@ -467,12 +467,21 @@
auto& layoutBox = displayBox.layoutBox();
if (!displayBox.isNonRootInlineBox()) {
- displayBox.setLeft(contentRightInVisualOrder);
if (displayBox.isAtomicInlineLevelBox() || displayBox.isGenericInlineLevelBox()) {
- formattingState().boxGeometry(layoutBox).setLogicalLeft(LayoutUnit { contentRightInVisualOrder });
- contentRightInVisualOrder += displayBox.width() + marginRight(formattingState().boxGeometry(layoutBox), layoutBox.parent().style().isLeftToRightDirection());
- } else
+ auto isLeftToRightDirection = layoutBox.parent().style().isLeftToRightDirection();
+ auto& boxGeometry = formattingState().boxGeometry(layoutBox);
+ auto boxMarginLeft = marginLeft(boxGeometry, isLeftToRightDirection);
+ auto boxMarginRight = marginRight(boxGeometry, isLeftToRightDirection);
+
+ auto borderBoxLeft = LayoutUnit { contentRightInVisualOrder + boxMarginLeft };
+ boxGeometry.setLogicalLeft(borderBoxLeft);
+ displayBox.setLeft(borderBoxLeft);
+
+ contentRightInVisualOrder += boxMarginLeft + displayBox.width() + boxMarginRight;
+ } else {
+ displayBox.setLeft(contentRightInVisualOrder);
contentRightInVisualOrder += displayBox.width();
+ }
return;
}
@@ -577,9 +586,12 @@
if (lineRun.isBox()) {
auto& boxGeometry = formattingState().boxGeometry(layoutBox);
auto visualRect = visualRectRelativeToRoot(lineBox.logicalBorderBoxForAtomicInlineLevelBox(layoutBox, boxGeometry));
- visualRect.moveHorizontally(boxGeometry.marginStart());
+
+ auto isLeftToRightDirection = layoutBox.parent().style().isLeftToRightDirection();
+ auto boxMarginLeft = marginLeft(boxGeometry, isLeftToRightDirection);
+ visualRect.moveHorizontally(boxMarginLeft);
appendAtomicInlineLevelDisplayBox(lineRun, visualRect, boxes);
- contentRightInVisualOrder += boxGeometry.marginStart() + visualRect.width() + boxGeometry.marginEnd();
+ contentRightInVisualOrder += boxMarginLeft + visualRect.width() + marginRight(boxGeometry, isLeftToRightDirection);
displayBoxTree.append(parentDisplayBoxNodeIndex, boxes.size() - 1);
continue;
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes