| 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 2046 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2057 itemMarker->layout(); | 2057 itemMarker->layout(); |
| 2058 maxWidth = std::max<float>(maxWidth, toLayoutListMarker(itemMarker)-
>logicalWidth().toFloat()); | 2058 maxWidth = std::max<float>(maxWidth, toLayoutListMarker(itemMarker)-
>logicalWidth().toFloat()); |
| 2059 break; | 2059 break; |
| 2060 } | 2060 } |
| 2061 } | 2061 } |
| 2062 return maxWidth; | 2062 return maxWidth; |
| 2063 } | 2063 } |
| 2064 | 2064 |
| 2065 void LayoutBox::computeLogicalWidth(LogicalExtentComputedValues& computedValues)
const | 2065 void LayoutBox::computeLogicalWidth(LogicalExtentComputedValues& computedValues)
const |
| 2066 { | 2066 { |
| 2067 computedValues.m_extent = logicalWidth(); | 2067 computedValues.m_extent = style()->containsLayout() ? borderAndPaddingLogica
lWidth() : logicalWidth(); |
| 2068 computedValues.m_position = logicalLeft(); | 2068 computedValues.m_position = logicalLeft(); |
| 2069 computedValues.m_margins.m_start = marginStart(); | 2069 computedValues.m_margins.m_start = marginStart(); |
| 2070 computedValues.m_margins.m_end = marginEnd(); | 2070 computedValues.m_margins.m_end = marginEnd(); |
| 2071 | 2071 |
| 2072 if (isOutOfFlowPositioned()) { | 2072 if (isOutOfFlowPositioned()) { |
| 2073 computePositionedLogicalWidth(computedValues); | 2073 computePositionedLogicalWidth(computedValues); |
| 2074 return; | 2074 return; |
| 2075 } | 2075 } |
| 2076 | 2076 |
| 2077 // The parent box is flexing us, so it has increased or decreased our | 2077 // The parent box is flexing us, so it has increased or decreased our |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2372 // Either no auto margins, or our margin box width is >= the container width
, auto margins will just turn into 0. | 2372 // Either no auto margins, or our margin box width is >= the container width
, auto margins will just turn into 0. |
| 2373 marginStart = marginStartWidth; | 2373 marginStart = marginStartWidth; |
| 2374 marginEnd = marginEndWidth; | 2374 marginEnd = marginEndWidth; |
| 2375 } | 2375 } |
| 2376 | 2376 |
| 2377 void LayoutBox::updateLogicalHeight() | 2377 void LayoutBox::updateLogicalHeight() |
| 2378 { | 2378 { |
| 2379 m_intrinsicContentLogicalHeight = contentLogicalHeight(); | 2379 m_intrinsicContentLogicalHeight = contentLogicalHeight(); |
| 2380 | 2380 |
| 2381 LogicalExtentComputedValues computedValues; | 2381 LogicalExtentComputedValues computedValues; |
| 2382 computeLogicalHeight(logicalHeight(), logicalTop(), computedValues); | 2382 if (style()->containsLayout()) |
| 2383 computeLogicalHeight(borderAndPaddingLogicalHeight(), logicalTop(), comp
utedValues); |
| 2384 else |
| 2385 computeLogicalHeight(logicalHeight(), logicalTop(), computedValues); |
| 2383 | 2386 |
| 2384 setLogicalHeight(computedValues.m_extent); | 2387 setLogicalHeight(computedValues.m_extent); |
| 2385 setLogicalTop(computedValues.m_position); | 2388 setLogicalTop(computedValues.m_position); |
| 2386 setMarginBefore(computedValues.m_margins.m_before); | 2389 setMarginBefore(computedValues.m_margins.m_before); |
| 2387 setMarginAfter(computedValues.m_margins.m_after); | 2390 setMarginAfter(computedValues.m_margins.m_after); |
| 2388 } | 2391 } |
| 2389 | 2392 |
| 2390 void LayoutBox::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logica
lTop, LogicalExtentComputedValues& computedValues) const | 2393 void LayoutBox::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logica
lTop, LogicalExtentComputedValues& computedValues) const |
| 2391 { | 2394 { |
| 2392 computedValues.m_extent = logicalHeight; | 2395 computedValues.m_extent = logicalHeight; |
| (...skipping 1658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4051 } | 4054 } |
| 4052 | 4055 |
| 4053 static bool shouldBeConsideredAsReplaced(Node* node) | 4056 static bool shouldBeConsideredAsReplaced(Node* node) |
| 4054 { | 4057 { |
| 4055 // Checkboxes and radioboxes are not isAtomicInlineLevel() nor do they have
their own layoutObject in which to override avoidFloats(). | 4058 // Checkboxes and radioboxes are not isAtomicInlineLevel() nor do they have
their own layoutObject in which to override avoidFloats(). |
| 4056 return node && node->isElementNode() && (toElement(node)->isFormControlEleme
nt() || isHTMLImageElement(toElement(node))); | 4059 return node && node->isElementNode() && (toElement(node)->isFormControlEleme
nt() || isHTMLImageElement(toElement(node))); |
| 4057 } | 4060 } |
| 4058 | 4061 |
| 4059 bool LayoutBox::avoidsFloats() const | 4062 bool LayoutBox::avoidsFloats() const |
| 4060 { | 4063 { |
| 4061 return isAtomicInlineLevel() || shouldBeConsideredAsReplaced(node()) || hasO
verflowClip() || isHR() || isLegend() || isWritingModeRoot() || isFlexItemInclud
ingDeprecated() || style()->containsPaint(); | 4064 return isAtomicInlineLevel() || shouldBeConsideredAsReplaced(node()) || hasO
verflowClip() || isHR() || isLegend() || isWritingModeRoot() || isFlexItemInclud
ingDeprecated() || style()->containsPaint() || style()->containsLayout(); |
| 4062 } | 4065 } |
| 4063 | 4066 |
| 4064 bool LayoutBox::hasNonCompositedScrollbars() const | 4067 bool LayoutBox::hasNonCompositedScrollbars() const |
| 4065 { | 4068 { |
| 4066 if (PaintLayer* layer = this->layer()) { | 4069 if (PaintLayer* layer = this->layer()) { |
| 4067 if (PaintLayerScrollableArea* scrollableArea = layer->scrollableArea())
{ | 4070 if (PaintLayerScrollableArea* scrollableArea = layer->scrollableArea())
{ |
| 4068 if (scrollableArea->hasHorizontalScrollbar() && !scrollableArea->lay
erForHorizontalScrollbar()) | 4071 if (scrollableArea->hasHorizontalScrollbar() && !scrollableArea->lay
erForHorizontalScrollbar()) |
| 4069 return true; | 4072 return true; |
| 4070 if (scrollableArea->hasVerticalScrollbar() && !scrollableArea->layer
ForVerticalScrollbar()) | 4073 if (scrollableArea->hasVerticalScrollbar() && !scrollableArea->layer
ForVerticalScrollbar()) |
| 4071 return true; | 4074 return true; |
| (...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4913 } | 4916 } |
| 4914 | 4917 |
| 4915 void LayoutBox::clearPreviousPaintInvalidationRects() | 4918 void LayoutBox::clearPreviousPaintInvalidationRects() |
| 4916 { | 4919 { |
| 4917 LayoutBoxModelObject::clearPreviousPaintInvalidationRects(); | 4920 LayoutBoxModelObject::clearPreviousPaintInvalidationRects(); |
| 4918 if (PaintLayerScrollableArea* scrollableArea = this->scrollableArea()) | 4921 if (PaintLayerScrollableArea* scrollableArea = this->scrollableArea()) |
| 4919 scrollableArea->clearPreviousPaintInvalidationRects(); | 4922 scrollableArea->clearPreviousPaintInvalidationRects(); |
| 4920 } | 4923 } |
| 4921 | 4924 |
| 4922 } // namespace blink | 4925 } // namespace blink |
| OLD | NEW |