Changeset 294233 in webkit
- Timestamp:
- May 16, 2022 8:08:11 AM (2 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r294231 r294233 1 2022-05-16 Alan Bujtas <zalan@apple.com> 2 3 [LFC][FFC] Add "flex-direction: row-reverse" basic visual/logical conversion 4 https://bugs.webkit.org/show_bug.cgi?id=240432 5 6 Reviewed by Antti Koivisto. 7 8 With "flex-direction: row-reverse" the main axis progression is from visual right to left (with default writing mode and all that). 9 10 * layout/formattingContexts/flex/FlexFormattingContext.cpp: 11 (WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration): 12 1 13 2022-05-16 Alan Bujtas <zalan@apple.com> 2 14 -
trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp
r294231 r294233 130 130 Vector<FlexItemLogicalBox> logicalFlexItemList; 131 131 132 auto logicalLeft = LayoutUnit { };133 auto logicalTop = LayoutUnit { };134 132 135 133 auto convertVisualToLogical = [&] { … … 137 135 auto direction = root().style().flexDirection(); 138 136 139 logicalLeft = constraints.horizontal().logicalLeft;140 logicalTop = constraints.logicalTop();141 142 137 for (auto& flexItem : childrenOfType<ContainerBox>(root())) { 143 138 auto& flexItemGeometry = formattingState.boxGeometry(flexItem); … … 146 141 switch (direction) { 147 142 case FlexDirection::Row: 143 case FlexDirection::RowReverse: 148 144 logicalSize = { flexItemGeometry.marginBoxWidth(), flexItemGeometry.marginBoxHeight() }; 149 145 break; … … 151 147 logicalSize = { flexItemGeometry.marginBoxHeight(), flexItemGeometry.marginBoxWidth() }; 152 148 break; 153 case FlexDirection::RowReverse:154 149 case FlexDirection::ColumnReverse: 155 150 ASSERT_NOT_IMPLEMENTED_YET(); … … 163 158 }; 164 159 convertVisualToLogical(); 160 161 auto logicalLeft = LayoutUnit { }; 162 auto logicalTop = LayoutUnit { }; 165 163 166 164 for (auto& logicalFlexItem : logicalFlexItemList) { … … 178 176 switch (direction) { 179 177 case FlexDirection::Row: 180 topLeft = logicalFlexItem.rect.topLeft(); 181 break; 182 case FlexDirection::Column: 183 topLeft = logicalFlexItem.rect.topLeft().transposedPoint(); 178 topLeft = { constraints.horizontal().logicalLeft + logicalFlexItem.rect.left(), constraints.logicalTop() + logicalFlexItem.rect.top() }; 184 179 break; 185 180 case FlexDirection::RowReverse: 181 topLeft = { constraints.horizontal().logicalRight() - logicalFlexItem.rect.right(), constraints.logicalTop() + logicalFlexItem.rect.top() }; 182 break; 183 case FlexDirection::Column: { 184 auto flippedTopLeft = logicalFlexItem.rect.topLeft().transposedPoint(); 185 topLeft = { constraints.horizontal().logicalLeft + flippedTopLeft.x(), constraints.logicalTop() + flippedTopLeft.y() }; 186 break; 187 } 186 188 case FlexDirection::ColumnReverse: 187 189 ASSERT_NOT_IMPLEMENTED_YET();
Note: See TracChangeset
for help on using the changeset viewer.