Changeset 95591 in webkit


Ignore:
Timestamp:
Sep 20, 2011 6:30:06 PM (13 years ago)
Author:
ojan@chromium.org
Message:

[css3-flexbox] cleanup padding width calculations
https://bugs.webkit.org/show_bug.cgi?id=68490

Reviewed by Tony Chang.

No new tests. Existing tests cover the refactor.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::logicalBorderAndPaddingWidthForChild):
(WebCore::RenderFlexibleBox::logicalScrollbarHeightForChild):
(WebCore::RenderFlexibleBox::preferredLogicalContentWidthForFlexItem):
(WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):

  • rendering/RenderFlexibleBox.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r95586 r95591  
     12011-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
    1182011-09-19  Jer Noble  <jer.noble@apple.com>
    219
  • trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp

    r95577 r95591  
    114114}
    115115
    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();
     116LayoutUnit RenderFlexibleBox::logicalBorderAndPaddingWidthForChild(RenderBox* child)
     117{
     118    return isHorizontalWritingMode() ? child->borderAndPaddingWidth() : child->borderAndPaddingHeight();
    128119}
    129120
    130121LayoutUnit RenderFlexibleBox::logicalScrollbarHeightForChild(RenderBox* child)
    131122{
    132     if (isHorizontalWritingMode())
    133         return child->horizontalScrollbarHeight();
    134     return child->verticalScrollbarWidth();
     123    return isHorizontalWritingMode() ? child->verticalScrollbarWidth() : child->horizontalScrollbarHeight();
    135124}
    136125
     
    154143    if (width.isAuto()) {
    155144        LayoutUnit logicalWidth = isHorizontalWritingMode() == child->isHorizontalWritingMode() ? child->maxPreferredLogicalWidth() : child->logicalHeight();
    156         return logicalWidth - logicalBorderWidthForChild(child) - logicalScrollbarHeightForChild(child) - logicalPaddingWidthForChild(child);
     145        return logicalWidth - logicalBorderAndPaddingWidthForChild(child) - logicalScrollbarHeightForChild(child);
    157146    }
    158147    return isHorizontalWritingMode() ? child->contentWidth() : child->contentHeight();
     
    205194        child->layoutIfNeeded();
    206195
     196        // We can't just use marginStartForChild, et. al. because "auto" needs to be treated as 0.
    207197        if (isHorizontalWritingMode()) {
    208198            preferredLogicalWidth += child->style()->marginLeft().calcMinValue(flexboxAvailableLogicalWidth);
    209199            preferredLogicalWidth += child->style()->marginRight().calcMinValue(flexboxAvailableLogicalWidth);
    210             preferredLogicalWidth += child->style()->paddingLeft().calcMinValue(flexboxAvailableLogicalWidth);
    211             preferredLogicalWidth += child->style()->paddingRight().calcMinValue(flexboxAvailableLogicalWidth);
    212200        } else {
    213201            preferredLogicalWidth += child->style()->marginTop().calcMinValue(flexboxAvailableLogicalWidth);
    214202            preferredLogicalWidth += child->style()->marginBottom().calcMinValue(flexboxAvailableLogicalWidth);
    215             preferredLogicalWidth += child->style()->paddingTop().calcMinValue(flexboxAvailableLogicalWidth);
    216             preferredLogicalWidth += child->style()->paddingBottom().calcMinValue(flexboxAvailableLogicalWidth);
    217203        }
    218204
     
    222208            totalPositiveFlexibility += 1;
    223209
    224         preferredLogicalWidth += logicalBorderWidthForChild(child);
     210        preferredLogicalWidth += logicalBorderAndPaddingWidthForChild(child);
    225211        preferredLogicalWidth += preferredLogicalContentWidthForFlexItem(child);
    226212
     
    306292    for (RenderBox* child = iterator.first(); child; child = iterator.next(), ++i) {
    307293        // FIXME: Does this need to take the scrollbar width into account?
    308         LayoutUnit childPreferredSize = childSizes[i] + logicalBorderWidthForChild(child) + logicalPaddingWidthForChild(child);
     294        LayoutUnit childPreferredSize = childSizes[i] + logicalBorderAndPaddingWidthForChild(child);
    309295        setLogicalOverrideSize(child, childPreferredSize);
    310296        child->setChildNeedsLayout(true);
  • trunk/Source/WebCore/rendering/RenderFlexibleBox.h

    r95577 r95591  
    5353    typedef WTF::HashMap<const RenderBox*, LayoutUnit> InflexibleFlexItemSize;
    5454
    55     LayoutUnit logicalBorderWidthForChild(RenderBox* child);
    56     LayoutUnit logicalPaddingWidthForChild(RenderBox* child);
     55    LayoutUnit logicalBorderAndPaddingWidthForChild(RenderBox* child);
    5756    LayoutUnit logicalScrollbarHeightForChild(RenderBox* child);
    5857    Length marginStartStyleForChild(RenderBox* child);
Note: See TracChangeset for help on using the changeset viewer.