Title: [294233] trunk/Source/WebCore
- Revision
- 294233
- Author
- za...@apple.com
- Date
- 2022-05-16 08:08:11 -0700 (Mon, 16 May 2022)
Log Message
[LFC][FFC] Add "flex-direction: row-reverse" basic visual/logical conversion
https://bugs.webkit.org/show_bug.cgi?id=240432
Reviewed by Antti Koivisto.
With "flex-direction: row-reverse" the main axis progression is from visual right to left (with default writing mode and all that).
* layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (294232 => 294233)
--- trunk/Source/WebCore/ChangeLog 2022-05-16 13:55:35 UTC (rev 294232)
+++ trunk/Source/WebCore/ChangeLog 2022-05-16 15:08:11 UTC (rev 294233)
@@ -1,5 +1,17 @@
2022-05-16 Alan Bujtas <za...@apple.com>
+ [LFC][FFC] Add "flex-direction: row-reverse" basic visual/logical conversion
+ https://bugs.webkit.org/show_bug.cgi?id=240432
+
+ Reviewed by Antti Koivisto.
+
+ With "flex-direction: row-reverse" the main axis progression is from visual right to left (with default writing mode and all that).
+
+ * layout/formattingContexts/flex/FlexFormattingContext.cpp:
+ (WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
+
+2022-05-16 Alan Bujtas <za...@apple.com>
+
[LFC][FFC] Add "flex-direction: column" basic visual/logical conversion
https://bugs.webkit.org/show_bug.cgi?id=240430
Modified: trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp (294232 => 294233)
--- trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp 2022-05-16 13:55:35 UTC (rev 294232)
+++ trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp 2022-05-16 15:08:11 UTC (rev 294233)
@@ -129,16 +129,11 @@
auto& formattingState = this->formattingState();
Vector<FlexItemLogicalBox> logicalFlexItemList;
- auto logicalLeft = LayoutUnit { };
- auto logicalTop = LayoutUnit { };
auto convertVisualToLogical = [&] {
// FIXME: Convert visual (row/column) direction to logical.
auto direction = root().style().flexDirection();
- logicalLeft = constraints.horizontal().logicalLeft;
- logicalTop = constraints.logicalTop();
-
for (auto& flexItem : childrenOfType<ContainerBox>(root())) {
auto& flexItemGeometry = formattingState.boxGeometry(flexItem);
auto logicalSize = LayoutSize { };
@@ -145,12 +140,12 @@
switch (direction) {
case FlexDirection::Row:
+ case FlexDirection::RowReverse:
logicalSize = { flexItemGeometry.marginBoxWidth(), flexItemGeometry.marginBoxHeight() };
break;
case FlexDirection::Column:
logicalSize = { flexItemGeometry.marginBoxHeight(), flexItemGeometry.marginBoxWidth() };
break;
- case FlexDirection::RowReverse:
case FlexDirection::ColumnReverse:
ASSERT_NOT_IMPLEMENTED_YET();
break;
@@ -163,6 +158,9 @@
};
convertVisualToLogical();
+ auto logicalLeft = LayoutUnit { };
+ auto logicalTop = LayoutUnit { };
+
for (auto& logicalFlexItem : logicalFlexItemList) {
logicalFlexItem.rect.setTopLeft({ logicalLeft, logicalTop });
logicalLeft = logicalFlexItem.rect.right();
@@ -177,12 +175,16 @@
switch (direction) {
case FlexDirection::Row:
- topLeft = logicalFlexItem.rect.topLeft();
+ topLeft = { constraints.horizontal().logicalLeft + logicalFlexItem.rect.left(), constraints.logicalTop() + logicalFlexItem.rect.top() };
break;
- case FlexDirection::Column:
- topLeft = logicalFlexItem.rect.topLeft().transposedPoint();
+ case FlexDirection::RowReverse:
+ topLeft = { constraints.horizontal().logicalRight() - logicalFlexItem.rect.right(), constraints.logicalTop() + logicalFlexItem.rect.top() };
break;
- case FlexDirection::RowReverse:
+ case FlexDirection::Column: {
+ auto flippedTopLeft = logicalFlexItem.rect.topLeft().transposedPoint();
+ topLeft = { constraints.horizontal().logicalLeft + flippedTopLeft.x(), constraints.logicalTop() + flippedTopLeft.y() };
+ break;
+ }
case FlexDirection::ColumnReverse:
ASSERT_NOT_IMPLEMENTED_YET();
break;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes