OLD | NEW |
1 /* | 1 /* |
2 * This file is part of the layout object implementation for KHTML. | 2 * This file is part of the layout object implementation for KHTML. |
3 * | 3 * |
4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
5 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 5 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
6 * Copyright (C) 2003 Apple Computer, Inc. | 6 * Copyright (C) 2003 Apple Computer, Inc. |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 relayoutChildren = true; | 397 relayoutChildren = true; |
398 | 398 |
399 layoutPositionedObjects(relayoutChildren || isDocumentElement()); | 399 layoutPositionedObjects(relayoutChildren || isDocumentElement()); |
400 | 400 |
401 computeOverflow(oldClientAfterEdge); | 401 computeOverflow(oldClientAfterEdge); |
402 } | 402 } |
403 | 403 |
404 updateLayerTransformAfterLayout(); | 404 updateLayerTransformAfterLayout(); |
405 updateAfterLayout(); | 405 updateAfterLayout(); |
406 | 406 |
407 if (view()->layoutState()->pageLogicalHeight()) | |
408 setPageLogicalOffset( | |
409 view()->layoutState()->pageLogicalOffset(*this, logicalTop())); | |
410 | |
411 clearNeedsLayout(); | 407 clearNeedsLayout(); |
412 } | 408 } |
413 | 409 |
414 // The first walk over our kids is to find out if we have any flexible children. | 410 // The first walk over our kids is to find out if we have any flexible children. |
415 static void gatherFlexChildrenInfo(FlexBoxIterator& iterator, | 411 static void gatherFlexChildrenInfo(FlexBoxIterator& iterator, |
416 bool relayoutChildren, | 412 bool relayoutChildren, |
417 unsigned& highestFlexGroup, | 413 unsigned& highestFlexGroup, |
418 unsigned& lowestFlexGroup, | 414 unsigned& lowestFlexGroup, |
419 bool& haveFlex) { | 415 bool& haveFlex) { |
420 for (LayoutBox* child = iterator.first(); child; child = iterator.next()) { | 416 for (LayoutBox* child = iterator.first(); child; child = iterator.next()) { |
(...skipping 17 matching lines...) Expand all Loading... |
438 } | 434 } |
439 } | 435 } |
440 } | 436 } |
441 | 437 |
442 void LayoutDeprecatedFlexibleBox::layoutHorizontalBox(bool relayoutChildren) { | 438 void LayoutDeprecatedFlexibleBox::layoutHorizontalBox(bool relayoutChildren) { |
443 LayoutUnit toAdd = | 439 LayoutUnit toAdd = |
444 borderBottom() + paddingBottom() + horizontalScrollbarHeight(); | 440 borderBottom() + paddingBottom() + horizontalScrollbarHeight(); |
445 LayoutUnit yPos = borderTop() + paddingTop(); | 441 LayoutUnit yPos = borderTop() + paddingTop(); |
446 LayoutUnit xPos = borderLeft() + paddingLeft(); | 442 LayoutUnit xPos = borderLeft() + paddingLeft(); |
447 bool heightSpecified = false; | 443 bool heightSpecified = false; |
| 444 bool paginated = view()->layoutState()->isPaginated(); |
448 LayoutUnit oldHeight; | 445 LayoutUnit oldHeight; |
449 | 446 |
450 LayoutUnit remainingSpace; | 447 LayoutUnit remainingSpace; |
451 | 448 |
452 FlexBoxIterator iterator(this); | 449 FlexBoxIterator iterator(this); |
453 unsigned highestFlexGroup = 0; | 450 unsigned highestFlexGroup = 0; |
454 unsigned lowestFlexGroup = 0; | 451 unsigned lowestFlexGroup = 0; |
455 bool haveFlex = false, flexingChildren = false; | 452 bool haveFlex = false, flexingChildren = false; |
456 gatherFlexChildrenInfo(iterator, relayoutChildren, highestFlexGroup, | 453 gatherFlexChildrenInfo(iterator, relayoutChildren, highestFlexGroup, |
457 lowestFlexGroup, haveFlex); | 454 lowestFlexGroup, haveFlex); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
507 | 504 |
508 // Update our maximum descent. | 505 // Update our maximum descent. |
509 maxDescent = std::max(maxDescent, descent); | 506 maxDescent = std::max(maxDescent, descent); |
510 | 507 |
511 // Now update our height. | 508 // Now update our height. |
512 setHeight(std::max(yPos + maxAscent + maxDescent, size().height())); | 509 setHeight(std::max(yPos + maxAscent + maxDescent, size().height())); |
513 } else { | 510 } else { |
514 setHeight(std::max(size().height(), yPos + child->size().height() + | 511 setHeight(std::max(size().height(), yPos + child->size().height() + |
515 child->marginHeight())); | 512 child->marginHeight())); |
516 } | 513 } |
| 514 |
| 515 if (paginated) |
| 516 updateFragmentationInfoForChild(*child); |
517 } | 517 } |
518 | 518 |
519 if (!iterator.first() && hasLineIfEmpty()) | 519 if (!iterator.first() && hasLineIfEmpty()) |
520 setHeight(size().height() + lineHeight(true, | 520 setHeight(size().height() + lineHeight(true, |
521 style()->isHorizontalWritingMode() | 521 style()->isHorizontalWritingMode() |
522 ? HorizontalLine | 522 ? HorizontalLine |
523 : VerticalLine, | 523 : VerticalLine, |
524 PositionOfInteriorLineBoxes)); | 524 PositionOfInteriorLineBoxes)); |
525 | 525 |
526 setHeight(size().height() + toAdd); | 526 setHeight(size().height() + toAdd); |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 // to the intrinsic height before returning. | 777 // to the intrinsic height before returning. |
778 if (heightSpecified) | 778 if (heightSpecified) |
779 setHeight(oldHeight); | 779 setHeight(oldHeight); |
780 } | 780 } |
781 | 781 |
782 void LayoutDeprecatedFlexibleBox::layoutVerticalBox(bool relayoutChildren) { | 782 void LayoutDeprecatedFlexibleBox::layoutVerticalBox(bool relayoutChildren) { |
783 LayoutUnit yPos = borderTop() + paddingTop(); | 783 LayoutUnit yPos = borderTop() + paddingTop(); |
784 LayoutUnit toAdd = | 784 LayoutUnit toAdd = |
785 borderBottom() + paddingBottom() + horizontalScrollbarHeight(); | 785 borderBottom() + paddingBottom() + horizontalScrollbarHeight(); |
786 bool heightSpecified = false; | 786 bool heightSpecified = false; |
| 787 bool paginated = view()->layoutState()->isPaginated(); |
787 LayoutUnit oldHeight; | 788 LayoutUnit oldHeight; |
788 | 789 |
789 LayoutUnit remainingSpace; | 790 LayoutUnit remainingSpace; |
790 | 791 |
791 FlexBoxIterator iterator(this); | 792 FlexBoxIterator iterator(this); |
792 unsigned highestFlexGroup = 0; | 793 unsigned highestFlexGroup = 0; |
793 unsigned lowestFlexGroup = 0; | 794 unsigned lowestFlexGroup = 0; |
794 bool haveFlex = false, flexingChildren = false; | 795 bool haveFlex = false, flexingChildren = false; |
795 gatherFlexChildrenInfo(iterator, relayoutChildren, highestFlexGroup, | 796 gatherFlexChildrenInfo(iterator, relayoutChildren, highestFlexGroup, |
796 lowestFlexGroup, haveFlex); | 797 lowestFlexGroup, haveFlex); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 else | 876 else |
876 childX += | 877 childX += |
877 contentWidth() - child->marginRight() - child->size().width(); | 878 contentWidth() - child->marginRight() - child->size().width(); |
878 break; | 879 break; |
879 } | 880 } |
880 | 881 |
881 // Place the child. | 882 // Place the child. |
882 placeChild(child, LayoutPoint(childX, size().height())); | 883 placeChild(child, LayoutPoint(childX, size().height())); |
883 setHeight(size().height() + child->size().height() + | 884 setHeight(size().height() + child->size().height() + |
884 child->marginBottom()); | 885 child->marginBottom()); |
| 886 |
| 887 if (paginated) |
| 888 updateFragmentationInfoForChild(*child); |
885 } | 889 } |
886 | 890 |
887 yPos = size().height(); | 891 yPos = size().height(); |
888 | 892 |
889 if (!iterator.first() && hasLineIfEmpty()) | 893 if (!iterator.first() && hasLineIfEmpty()) |
890 setHeight(size().height() + lineHeight(true, | 894 setHeight(size().height() + lineHeight(true, |
891 style()->isHorizontalWritingMode() | 895 style()->isHorizontalWritingMode() |
892 ? HorizontalLine | 896 ? HorizontalLine |
893 : VerticalLine, | 897 : VerticalLine, |
894 PositionOfInteriorLineBoxes)); | 898 PositionOfInteriorLineBoxes)); |
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1261 if (minHeight.isFixed() || minHeight.isAuto()) { | 1265 if (minHeight.isFixed() || minHeight.isAuto()) { |
1262 LayoutUnit minHeight(child->style()->minHeight().value()); | 1266 LayoutUnit minHeight(child->style()->minHeight().value()); |
1263 LayoutUnit height = contentHeightForChild(child); | 1267 LayoutUnit height = contentHeightForChild(child); |
1264 LayoutUnit allowedShrinkage = (minHeight - height).clampPositiveToZero(); | 1268 LayoutUnit allowedShrinkage = (minHeight - height).clampPositiveToZero(); |
1265 return allowedShrinkage; | 1269 return allowedShrinkage; |
1266 } | 1270 } |
1267 return LayoutUnit(); | 1271 return LayoutUnit(); |
1268 } | 1272 } |
1269 | 1273 |
1270 } // namespace blink | 1274 } // namespace blink |
OLD | NEW |