Changeset 95591 in webkit
- Timestamp:
- Sep 20, 2011 6:30:06 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r95586 r95591 1 2011-09-20 Ojan Vafai <ojan@chromium.org> 2 3 [css3-flexbox] cleanup padding width calculations 4 https://bugs.webkit.org/show_bug.cgi?id=68490 5 6 Reviewed by Tony Chang. 7 8 No new tests. Existing tests cover the refactor. 9 10 * rendering/RenderFlexibleBox.cpp: 11 (WebCore::RenderFlexibleBox::logicalBorderAndPaddingWidthForChild): 12 (WebCore::RenderFlexibleBox::logicalScrollbarHeightForChild): 13 (WebCore::RenderFlexibleBox::preferredLogicalContentWidthForFlexItem): 14 (WebCore::RenderFlexibleBox::computePreferredLogicalWidth): 15 (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection): 16 * rendering/RenderFlexibleBox.h: 17 1 18 2011-09-19 Jer Noble <jer.noble@apple.com> 2 19 -
trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp
r95577 r95591 114 114 } 115 115 116 LayoutUnit RenderFlexibleBox::logicalBorderWidthForChild(RenderBox* child) 117 { 118 if (isHorizontalWritingMode()) 119 return child->borderLeft() + child->borderRight(); 120 return child->borderTop() + child->borderBottom(); 121 } 122 123 LayoutUnit RenderFlexibleBox::logicalPaddingWidthForChild(RenderBox* child) 124 { 125 if (isHorizontalWritingMode()) 126 return child->paddingLeft() + child->paddingRight(); 127 return child->paddingTop() + child->paddingBottom(); 116 LayoutUnit RenderFlexibleBox::logicalBorderAndPaddingWidthForChild(RenderBox* child) 117 { 118 return isHorizontalWritingMode() ? child->borderAndPaddingWidth() : child->borderAndPaddingHeight(); 128 119 } 129 120 130 121 LayoutUnit RenderFlexibleBox::logicalScrollbarHeightForChild(RenderBox* child) 131 122 { 132 if (isHorizontalWritingMode()) 133 return child->horizontalScrollbarHeight(); 134 return child->verticalScrollbarWidth(); 123 return isHorizontalWritingMode() ? child->verticalScrollbarWidth() : child->horizontalScrollbarHeight(); 135 124 } 136 125 … … 154 143 if (width.isAuto()) { 155 144 LayoutUnit logicalWidth = isHorizontalWritingMode() == child->isHorizontalWritingMode() ? child->maxPreferredLogicalWidth() : child->logicalHeight(); 156 return logicalWidth - logicalBorder WidthForChild(child) - logicalScrollbarHeightForChild(child) - logicalPaddingWidthForChild(child);145 return logicalWidth - logicalBorderAndPaddingWidthForChild(child) - logicalScrollbarHeightForChild(child); 157 146 } 158 147 return isHorizontalWritingMode() ? child->contentWidth() : child->contentHeight(); … … 205 194 child->layoutIfNeeded(); 206 195 196 // We can't just use marginStartForChild, et. al. because "auto" needs to be treated as 0. 207 197 if (isHorizontalWritingMode()) { 208 198 preferredLogicalWidth += child->style()->marginLeft().calcMinValue(flexboxAvailableLogicalWidth); 209 199 preferredLogicalWidth += child->style()->marginRight().calcMinValue(flexboxAvailableLogicalWidth); 210 preferredLogicalWidth += child->style()->paddingLeft().calcMinValue(flexboxAvailableLogicalWidth);211 preferredLogicalWidth += child->style()->paddingRight().calcMinValue(flexboxAvailableLogicalWidth);212 200 } else { 213 201 preferredLogicalWidth += child->style()->marginTop().calcMinValue(flexboxAvailableLogicalWidth); 214 202 preferredLogicalWidth += child->style()->marginBottom().calcMinValue(flexboxAvailableLogicalWidth); 215 preferredLogicalWidth += child->style()->paddingTop().calcMinValue(flexboxAvailableLogicalWidth);216 preferredLogicalWidth += child->style()->paddingBottom().calcMinValue(flexboxAvailableLogicalWidth);217 203 } 218 204 … … 222 208 totalPositiveFlexibility += 1; 223 209 224 preferredLogicalWidth += logicalBorder WidthForChild(child);210 preferredLogicalWidth += logicalBorderAndPaddingWidthForChild(child); 225 211 preferredLogicalWidth += preferredLogicalContentWidthForFlexItem(child); 226 212 … … 306 292 for (RenderBox* child = iterator.first(); child; child = iterator.next(), ++i) { 307 293 // FIXME: Does this need to take the scrollbar width into account? 308 LayoutUnit childPreferredSize = childSizes[i] + logicalBorder WidthForChild(child) + logicalPaddingWidthForChild(child);294 LayoutUnit childPreferredSize = childSizes[i] + logicalBorderAndPaddingWidthForChild(child); 309 295 setLogicalOverrideSize(child, childPreferredSize); 310 296 child->setChildNeedsLayout(true); -
trunk/Source/WebCore/rendering/RenderFlexibleBox.h
r95577 r95591 53 53 typedef WTF::HashMap<const RenderBox*, LayoutUnit> InflexibleFlexItemSize; 54 54 55 LayoutUnit logicalBorderWidthForChild(RenderBox* child); 56 LayoutUnit logicalPaddingWidthForChild(RenderBox* child); 55 LayoutUnit logicalBorderAndPaddingWidthForChild(RenderBox* child); 57 56 LayoutUnit logicalScrollbarHeightForChild(RenderBox* child); 58 57 Length marginStartStyleForChild(RenderBox* child);
Note: See TracChangeset
for help on using the changeset viewer.