| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) |
| 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) |
| 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv
ed. |
| 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 if (!styleToUse.logicalMaxHeight().isMaxSizeNone()) { | 585 if (!styleToUse.logicalMaxHeight().isMaxSizeNone()) { |
| 586 LayoutUnit maxH = computeLogicalHeightUsing(MaxSize, styleToUse.logicalM
axHeight(), intrinsicContentHeight); | 586 LayoutUnit maxH = computeLogicalHeightUsing(MaxSize, styleToUse.logicalM
axHeight(), intrinsicContentHeight); |
| 587 if (maxH != -1) | 587 if (maxH != -1) |
| 588 logicalHeight = std::min(logicalHeight, maxH); | 588 logicalHeight = std::min(logicalHeight, maxH); |
| 589 } | 589 } |
| 590 return std::max(logicalHeight, computeLogicalHeightUsing(MinSize, styleToUse
.logicalMinHeight(), intrinsicContentHeight)); | 590 return std::max(logicalHeight, computeLogicalHeightUsing(MinSize, styleToUse
.logicalMinHeight(), intrinsicContentHeight)); |
| 591 } | 591 } |
| 592 | 592 |
| 593 LayoutUnit LayoutBox::constrainContentBoxLogicalHeightByMinMax(LayoutUnit logica
lHeight, LayoutUnit intrinsicContentHeight) const | 593 LayoutUnit LayoutBox::constrainContentBoxLogicalHeightByMinMax(LayoutUnit logica
lHeight, LayoutUnit intrinsicContentHeight) const |
| 594 { | 594 { |
| 595 // If the min/max height and logical height are both percentages we take adv
antage of already knowing the current resolved percentage height |
| 596 // to avoid recursing up through our containing blocks again to determine it
. |
| 595 const ComputedStyle& styleToUse = styleRef(); | 597 const ComputedStyle& styleToUse = styleRef(); |
| 596 if (!styleToUse.logicalMaxHeight().isMaxSizeNone()) { | 598 if (!styleToUse.logicalMaxHeight().isMaxSizeNone()) { |
| 597 LayoutUnit maxH = computeContentLogicalHeight(MaxSize, styleToUse.logica
lMaxHeight(), intrinsicContentHeight); | 599 if (styleToUse.logicalMaxHeight().hasPercent() && styleToUse.logicalHeig
ht().hasPercent()) { |
| 598 if (maxH != -1) | 600 LayoutUnit availableLogicalHeight = logicalHeight / styleToUse.logic
alHeight().value() * 100; |
| 599 logicalHeight = std::min(logicalHeight, maxH); | 601 logicalHeight = std::min(logicalHeight, valueForLength(styleToUse.lo
gicalMaxHeight(), availableLogicalHeight)); |
| 602 } else { |
| 603 LayoutUnit maxHeight = computeContentLogicalHeight(MaxSize, styleToU
se.logicalMaxHeight(), -1); |
| 604 if (maxHeight != -1) |
| 605 logicalHeight = std::min(logicalHeight, maxHeight); |
| 606 } |
| 600 } | 607 } |
| 601 return std::max(logicalHeight, computeContentLogicalHeight(MinSize, styleToU
se.logicalMinHeight(), intrinsicContentHeight)); | 608 |
| 609 if (styleToUse.logicalMinHeight().hasPercent() && styleToUse.logicalHeight()
.hasPercent()) { |
| 610 LayoutUnit availableLogicalHeight = logicalHeight / styleToUse.logicalHe
ight().value() * 100; |
| 611 logicalHeight = std::max(logicalHeight, valueForLength(styleToUse.logica
lMinHeight(), availableLogicalHeight)); |
| 612 } else { |
| 613 logicalHeight = std::max(logicalHeight, computeContentLogicalHeight(MinS
ize, styleToUse.logicalMinHeight(), intrinsicContentHeight)); |
| 614 } |
| 615 |
| 616 return logicalHeight; |
| 602 } | 617 } |
| 603 | 618 |
| 604 void LayoutBox::setLocationAndUpdateOverflowControlsIfNeeded(const LayoutPoint&
location) | 619 void LayoutBox::setLocationAndUpdateOverflowControlsIfNeeded(const LayoutPoint&
location) |
| 605 { | 620 { |
| 606 if (hasOverflowClip()) { | 621 if (hasOverflowClip()) { |
| 607 IntSize oldPixelSnappedBorderRectSize = pixelSnappedBorderBoxRect().size
(); | 622 IntSize oldPixelSnappedBorderRectSize = pixelSnappedBorderBoxRect().size
(); |
| 608 setLocation(location); | 623 setLocation(location); |
| 609 if (pixelSnappedBorderBoxRect().size() != oldPixelSnappedBorderRectSize) | 624 if (pixelSnappedBorderBoxRect().size() != oldPixelSnappedBorderRectSize) |
| 610 scrollableArea()->updateAfterLayout(); | 625 scrollableArea()->updateAfterLayout(); |
| 611 return; | 626 return; |
| (...skipping 4228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4840 StyleImage* borderImage = style()->borderImage().image(); | 4855 StyleImage* borderImage = style()->borderImage().image(); |
| 4841 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); | 4856 return borderImage && borderImage->canRender(*this, style()->effectiveZoom()
) && borderImage->isLoaded(); |
| 4842 } | 4857 } |
| 4843 | 4858 |
| 4844 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const | 4859 ShapeOutsideInfo* LayoutBox::shapeOutsideInfo() const |
| 4845 { | 4860 { |
| 4846 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this)
: nullptr; | 4861 return ShapeOutsideInfo::isEnabledFor(*this) ? ShapeOutsideInfo::info(*this)
: nullptr; |
| 4847 } | 4862 } |
| 4848 | 4863 |
| 4849 } // namespace blink | 4864 } // namespace blink |
| OLD | NEW |