Changeset 294983 in webkit
- Timestamp:
- May 27, 2022 9:10:06 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp
r294904 r294983 218 218 // don't participate in content flexing. 219 219 for (size_t index = 0; index < logicalFlexItemList.size(); ++index) { 220 auto& logicalFlexItem = logicalFlexItemList[index]; 221 if (auto flexShrink = logicalFlexItem.layoutBox->style().flexShrink()) { 220 auto& flexItem = logicalFlexItemList[index]; 221 auto baseSize = flexItem.rect.width(); 222 if (auto flexShrink = flexItem.layoutBox->style().flexShrink()) { 222 223 shrinkingItems.append(index); 223 totalShrink += flexShrink ;224 totalFlexibleSpace += logicalFlexItem.rect.width();224 totalShrink += flexShrink * baseSize; 225 totalFlexibleSpace += baseSize; 225 226 } else 226 availableSpace -= logicalFlexItem.rect.width();227 availableSpace -= baseSize; 227 228 } 228 229 if (totalShrink) … … 237 238 auto& flexItem = logicalFlexItemList[flexItemIndex]; 238 239 239 auto flexShrink = flexItem.layoutBox->style().flexShrink(); 240 auto flexedSize = flexItem.rect.width() - (flexShrink * flexShrinkBase); 240 auto baseSize = flexItem.rect.width(); 241 auto flexShrink = flexItem.layoutBox->style().flexShrink() * baseSize; 242 auto flexedSize = baseSize - (flexShrink * flexShrinkBase); 241 243 auto minimumSize = formattingState.intrinsicWidthConstraintsForBox(*flexItem.layoutBox)->minimum; 242 244 if (minimumSize >= flexedSize) { 243 245 totalShrink -= flexShrink; 244 totalFlexibleSpace -= flexItem.rect.width();246 totalFlexibleSpace -= baseSize; 245 247 availableSpace -= minimumSize; 246 248 } … … 255 257 auto& flexItem = logicalFlexItemList[flexItemIndex]; 256 258 257 auto flexShrink = flexItem.layoutBox->style().flexShrink(); 258 auto flexedSize = LayoutUnit { flexItem.rect.width() - (flexShrink * flexShrinkBase) }; 259 auto baseSize = flexItem.rect.width(); 260 auto flexShrink = flexItem.layoutBox->style().flexShrink() * baseSize; 261 auto flexedSize = LayoutUnit { baseSize - (flexShrink * flexShrinkBase) }; 259 262 auto minimumSize = formattingState.intrinsicWidthConstraintsForBox(*flexItem.layoutBox)->minimum; 260 263 flexItem.rect.setWidth(std::max(minimumSize, flexedSize)); … … 341 344 logicalWidth += logicalFlexItem.rect.width(); 342 345 return logicalWidth; 343 } ;346 }(); 344 347 345 348 if (!availableSpace) 346 349 ASSERT_NOT_IMPLEMENTED_YET(); 347 else if (*availableSpace > contentLogicalWidth ())350 else if (*availableSpace > contentLogicalWidth) 348 351 computeLogicalWidthForStretchingFlexItems(logicalFlexItemList, *availableSpace); 349 else 352 else if (*availableSpace < contentLogicalWidth) 350 353 computeLogicalWidthForShrinkingFlexItems(logicalFlexItemList, *availableSpace); 351 354 }
Note: See TracChangeset
for help on using the changeset viewer.