| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 } | 201 } |
| 202 | 202 |
| 203 void RenderFlexibleBox::styleDidChange(StyleDifference diff, const RenderStyle*
oldStyle) | 203 void RenderFlexibleBox::styleDidChange(StyleDifference diff, const RenderStyle*
oldStyle) |
| 204 { | 204 { |
| 205 RenderBlock::styleDidChange(diff, oldStyle); | 205 RenderBlock::styleDidChange(diff, oldStyle); |
| 206 | 206 |
| 207 if (oldStyle && oldStyle->alignItems() == ItemPositionStretch && diff.needsF
ullLayout()) { | 207 if (oldStyle && oldStyle->alignItems() == ItemPositionStretch && diff.needsF
ullLayout()) { |
| 208 // Flex items that were previously stretching need to be relayed out so
we can compute new available cross axis space. | 208 // Flex items that were previously stretching need to be relayed out so
we can compute new available cross axis space. |
| 209 // This is only necessary for stretching since other alignment values do
n't change the size of the box. | 209 // This is only necessary for stretching since other alignment values do
n't change the size of the box. |
| 210 for (RenderBox* child = firstChildBox(); child; child = child->nextSibli
ngBox()) { | 210 for (RenderBox* child = firstChildBox(); child; child = child->nextSibli
ngBox()) { |
| 211 ItemPosition previousAlignment = RenderStyle::resolveAlignment(oldSt
yle, child->style()); | 211 ItemPosition previousAlignment = RenderStyle::resolveAlignment(oldSt
yle, child->style(), ItemPositionStretch); |
| 212 if (previousAlignment == ItemPositionStretch && previousAlignment !=
RenderStyle::resolveAlignment(style(), child->style())) | 212 if (previousAlignment == ItemPositionStretch && previousAlignment !=
RenderStyle::resolveAlignment(style(), child->style(), ItemPositionStretch)) |
| 213 child->setChildNeedsLayout(MarkOnlyThis); | 213 child->setChildNeedsLayout(MarkOnlyThis); |
| 214 } | 214 } |
| 215 } | 215 } |
| 216 } | 216 } |
| 217 | 217 |
| 218 void RenderFlexibleBox::layoutBlock(bool relayoutChildren) | 218 void RenderFlexibleBox::layoutBlock(bool relayoutChildren) |
| 219 { | 219 { |
| 220 ASSERT(needsLayout()); | 220 ASSERT(needsLayout()); |
| 221 | 221 |
| 222 if (!relayoutChildren && simplifiedLayout()) | 222 if (!relayoutChildren && simplifiedLayout()) |
| (...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 996 LayoutUnit staticBlockPosition = isColumnFlow() ? mainAxisOffset : crossAxis
Offset; | 996 LayoutUnit staticBlockPosition = isColumnFlow() ? mainAxisOffset : crossAxis
Offset; |
| 997 if (childLayer->staticBlockPosition() != staticBlockPosition) { | 997 if (childLayer->staticBlockPosition() != staticBlockPosition) { |
| 998 childLayer->setStaticBlockPosition(staticBlockPosition); | 998 childLayer->setStaticBlockPosition(staticBlockPosition); |
| 999 if (child.style()->hasStaticBlockPosition(style()->isHorizontalWritingMo
de())) | 999 if (child.style()->hasStaticBlockPosition(style()->isHorizontalWritingMo
de())) |
| 1000 child.setChildNeedsLayout(MarkOnlyThis); | 1000 child.setChildNeedsLayout(MarkOnlyThis); |
| 1001 } | 1001 } |
| 1002 } | 1002 } |
| 1003 | 1003 |
| 1004 ItemPosition RenderFlexibleBox::alignmentForChild(RenderBox& child) const | 1004 ItemPosition RenderFlexibleBox::alignmentForChild(RenderBox& child) const |
| 1005 { | 1005 { |
| 1006 ItemPosition align = RenderStyle::resolveAlignment(style(), child.style()); | 1006 ItemPosition align = RenderStyle::resolveAlignment(style(), child.style(), I
temPositionStretch); |
| 1007 | 1007 |
| 1008 if (align == ItemPositionBaseline && hasOrthogonalFlow(child)) | 1008 if (align == ItemPositionBaseline && hasOrthogonalFlow(child)) |
| 1009 align = ItemPositionFlexStart; | 1009 align = ItemPositionFlexStart; |
| 1010 | 1010 |
| 1011 if (style()->flexWrap() == FlexWrapReverse) { | 1011 if (style()->flexWrap() == FlexWrapReverse) { |
| 1012 if (align == ItemPositionFlexStart) | 1012 if (align == ItemPositionFlexStart) |
| 1013 align = ItemPositionFlexEnd; | 1013 align = ItemPositionFlexEnd; |
| 1014 else if (align == ItemPositionFlexEnd) | 1014 else if (align == ItemPositionFlexEnd) |
| 1015 align = ItemPositionFlexStart; | 1015 align = ItemPositionFlexStart; |
| 1016 } | 1016 } |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1393 ASSERT(child); | 1393 ASSERT(child); |
| 1394 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE
xtent; | 1394 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE
xtent; |
| 1395 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset
- crossAxisStartEdge; | 1395 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset
- crossAxisStartEdge; |
| 1396 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi
sExtent; | 1396 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi
sExtent; |
| 1397 adjustAlignmentForChild(*child, newOffset - originalOffset); | 1397 adjustAlignmentForChild(*child, newOffset - originalOffset); |
| 1398 } | 1398 } |
| 1399 } | 1399 } |
| 1400 } | 1400 } |
| 1401 | 1401 |
| 1402 } | 1402 } |
| OLD | NEW |