| 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 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 computeLogicalHeight(borderBoxLogicalHeight, logicalTop(), computedValue
s); | 527 computeLogicalHeight(borderBoxLogicalHeight, logicalTop(), computedValue
s); |
| 528 return std::max(LayoutUnit(0), computedValues.m_extent - borderPaddingAn
dScrollbar); | 528 return std::max(LayoutUnit(0), computedValues.m_extent - borderPaddingAn
dScrollbar); |
| 529 } | 529 } |
| 530 return contentLogicalWidth(); | 530 return contentLogicalWidth(); |
| 531 } | 531 } |
| 532 | 532 |
| 533 LayoutUnit RenderFlexibleBox::computeMainAxisExtentForChild(RenderBox* child, Si
zeType sizeType, const Length& size) | 533 LayoutUnit RenderFlexibleBox::computeMainAxisExtentForChild(RenderBox* child, Si
zeType sizeType, const Length& size) |
| 534 { | 534 { |
| 535 // FIXME: This is wrong for orthogonal flows. It should use the flexbox's wr
iting-mode, not the child's in order | 535 // FIXME: This is wrong for orthogonal flows. It should use the flexbox's wr
iting-mode, not the child's in order |
| 536 // to figure out the logical height/width. | 536 // to figure out the logical height/width. |
| 537 // FIXME: This is wrong if the height is set to an intrinsic keyword value.
computeContentLogicalHeight will return -1. | 537 if (isColumnFlow()) { |
| 538 // Instead, we need to layout the child an get the appropriate height value. | 538 if (child->style()->logicalHeight().isIntrinsic() || child->style()->log
icalMinHeight().isIntrinsic() || |
| 539 // https://bugs.webkit.org/show_bug.cgi?id=113610 | 539 child->style()->logicalMaxHeight().isIntrinsic()) { |
| 540 if (isColumnFlow()) | 540 if (child->needsLayout()) |
| 541 return child->computeContentLogicalHeight(size); | 541 child->layout(); |
| 542 } |
| 543 return child->computeContentLogicalHeight(size, child->logicalHeight() -
child->borderAndPaddingLogicalHeight()); |
| 544 } |
| 542 // FIXME: Figure out how this should work for regions and pass in the approp
riate values. | 545 // FIXME: Figure out how this should work for regions and pass in the approp
riate values. |
| 543 LayoutUnit offsetFromLogicalTopOfFirstPage = 0; | 546 LayoutUnit offsetFromLogicalTopOfFirstPage = 0; |
| 544 RenderRegion* region = 0; | 547 RenderRegion* region = 0; |
| 545 return child->computeLogicalWidthInRegionUsing(sizeType, size, contentLogica
lWidth(), this, region, offsetFromLogicalTopOfFirstPage) - child->borderAndPaddi
ngLogicalWidth(); | 548 return child->computeLogicalWidthInRegionUsing(sizeType, size, contentLogica
lWidth(), this, region, offsetFromLogicalTopOfFirstPage) - child->borderAndPaddi
ngLogicalWidth(); |
| 546 } | 549 } |
| 547 | 550 |
| 548 WritingMode RenderFlexibleBox::transformedWritingMode() const | 551 WritingMode RenderFlexibleBox::transformedWritingMode() const |
| 549 { | 552 { |
| 550 WritingMode mode = style()->writingMode(); | 553 WritingMode mode = style()->writingMode(); |
| 551 if (!isColumnFlow()) | 554 if (!isColumnFlow()) |
| (...skipping 830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1382 } | 1385 } |
| 1383 } | 1386 } |
| 1384 } | 1387 } |
| 1385 | 1388 |
| 1386 void RenderFlexibleBox::applyStretchAlignmentToChild(RenderBox* child, LayoutUni
t lineCrossAxisExtent) | 1389 void RenderFlexibleBox::applyStretchAlignmentToChild(RenderBox* child, LayoutUni
t lineCrossAxisExtent) |
| 1387 { | 1390 { |
| 1388 if (!isColumnFlow() && child->style()->logicalHeight().isAuto()) { | 1391 if (!isColumnFlow() && child->style()->logicalHeight().isAuto()) { |
| 1389 // FIXME: If the child has orthogonal flow, then it already has an overr
ide height set, so use it. | 1392 // FIXME: If the child has orthogonal flow, then it already has an overr
ide height set, so use it. |
| 1390 if (!hasOrthogonalFlow(child)) { | 1393 if (!hasOrthogonalFlow(child)) { |
| 1391 LayoutUnit stretchedLogicalHeight = child->logicalHeight() + availab
leAlignmentSpaceForChild(lineCrossAxisExtent, child); | 1394 LayoutUnit stretchedLogicalHeight = child->logicalHeight() + availab
leAlignmentSpaceForChild(lineCrossAxisExtent, child); |
| 1392 LayoutUnit desiredLogicalHeight = child->constrainLogicalHeightByMin
Max(stretchedLogicalHeight); | 1395 ASSERT(!child->needsLayout()); |
| 1396 LayoutUnit desiredLogicalHeight = child->constrainLogicalHeightByMin
Max(stretchedLogicalHeight, child->logicalHeight() - child->borderAndPaddingLogi
calHeight()); |
| 1393 | 1397 |
| 1394 // FIXME: Can avoid laying out here in some cases. See https://webki
t.org/b/87905. | 1398 // FIXME: Can avoid laying out here in some cases. See https://webki
t.org/b/87905. |
| 1395 if (desiredLogicalHeight != child->logicalHeight()) { | 1399 if (desiredLogicalHeight != child->logicalHeight()) { |
| 1396 child->setOverrideLogicalContentHeight(desiredLogicalHeight - ch
ild->borderAndPaddingLogicalHeight()); | 1400 child->setOverrideLogicalContentHeight(desiredLogicalHeight - ch
ild->borderAndPaddingLogicalHeight()); |
| 1397 child->setLogicalHeight(0); | 1401 child->setLogicalHeight(0); |
| 1398 child->setChildNeedsLayout(true, MarkOnlyThis); | 1402 child->setChildNeedsLayout(true, MarkOnlyThis); |
| 1399 child->layout(); | 1403 child->layout(); |
| 1400 } | 1404 } |
| 1401 } | 1405 } |
| 1402 } else if (isColumnFlow() && child->style()->logicalWidth().isAuto()) { | 1406 } else if (isColumnFlow() && child->style()->logicalWidth().isAuto()) { |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1438 ASSERT(child); | 1442 ASSERT(child); |
| 1439 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE
xtent; | 1443 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE
xtent; |
| 1440 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset
- crossAxisStartEdge; | 1444 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset
- crossAxisStartEdge; |
| 1441 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi
sExtent; | 1445 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi
sExtent; |
| 1442 adjustAlignmentForChild(child, newOffset - originalOffset); | 1446 adjustAlignmentForChild(child, newOffset - originalOffset); |
| 1443 } | 1447 } |
| 1444 } | 1448 } |
| 1445 } | 1449 } |
| 1446 | 1450 |
| 1447 } | 1451 } |
| OLD | NEW |