| 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 return NoPaintLayer; | 113 return NoPaintLayer; |
| 114 } | 114 } |
| 115 | 115 |
| 116 void LayoutBox::willBeDestroyed() | 116 void LayoutBox::willBeDestroyed() |
| 117 { | 117 { |
| 118 clearOverrideSize(); | 118 clearOverrideSize(); |
| 119 clearContainingBlockOverrideSize(); | 119 clearContainingBlockOverrideSize(); |
| 120 clearExtraInlineAndBlockOffests(); | 120 clearExtraInlineAndBlockOffests(); |
| 121 | 121 |
| 122 LayoutBlock::removePercentHeightDescendantIfNeeded(this); | 122 LayoutBlock::removePercentHeightDescendantIfNeeded(this); |
| 123 if (!documentBeingDestroyed() && isOrthogonalWritingModeRoot()) |
| 124 unmarkOrthogonalWritingModeRoot(); |
| 123 | 125 |
| 124 ShapeOutsideInfo::removeInfo(*this); | 126 ShapeOutsideInfo::removeInfo(*this); |
| 125 | 127 |
| 126 LayoutBoxModelObject::willBeDestroyed(); | 128 LayoutBoxModelObject::willBeDestroyed(); |
| 127 } | 129 } |
| 128 | 130 |
| 131 void LayoutBox::insertedIntoTree() |
| 132 { |
| 133 LayoutBoxModelObject::insertedIntoTree(); |
| 134 |
| 135 if (isOrthogonalWritingModeRoot()) |
| 136 markOrthogonalWritingModeRoot(); |
| 137 } |
| 138 |
| 139 void LayoutBox::willBeRemovedFromTree() |
| 140 { |
| 141 if (!documentBeingDestroyed() && isOrthogonalWritingModeRoot()) |
| 142 unmarkOrthogonalWritingModeRoot(); |
| 143 |
| 144 LayoutBoxModelObject::willBeRemovedFromTree(); |
| 145 } |
| 146 |
| 129 void LayoutBox::removeFloatingOrPositionedChildFromBlockLists() | 147 void LayoutBox::removeFloatingOrPositionedChildFromBlockLists() |
| 130 { | 148 { |
| 131 ASSERT(isFloatingOrOutOfFlowPositioned()); | 149 ASSERT(isFloatingOrOutOfFlowPositioned()); |
| 132 | 150 |
| 133 if (documentBeingDestroyed()) | 151 if (documentBeingDestroyed()) |
| 134 return; | 152 return; |
| 135 | 153 |
| 136 if (isFloating()) { | 154 if (isFloating()) { |
| 137 LayoutBlockFlow* parentBlockFlow = nullptr; | 155 LayoutBlockFlow* parentBlockFlow = nullptr; |
| 138 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr
= curr->parent()) { | 156 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr
= curr->parent()) { |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 // (as part of the LayoutBoxModelObject::styleDidChange call below). So, we
can safely cache the horizontal | 221 // (as part of the LayoutBoxModelObject::styleDidChange call below). So, we
can safely cache the horizontal |
| 204 // writing mode value before style change here. | 222 // writing mode value before style change here. |
| 205 bool oldHorizontalWritingMode = isHorizontalWritingMode(); | 223 bool oldHorizontalWritingMode = isHorizontalWritingMode(); |
| 206 | 224 |
| 207 LayoutBoxModelObject::styleDidChange(diff, oldStyle); | 225 LayoutBoxModelObject::styleDidChange(diff, oldStyle); |
| 208 | 226 |
| 209 const ComputedStyle& newStyle = styleRef(); | 227 const ComputedStyle& newStyle = styleRef(); |
| 210 if (needsLayout() && oldStyle) | 228 if (needsLayout() && oldStyle) |
| 211 LayoutBlock::removePercentHeightDescendantIfNeeded(this); | 229 LayoutBlock::removePercentHeightDescendantIfNeeded(this); |
| 212 | 230 |
| 213 if (LayoutBlock::hasPercentHeightContainerMap() && slowFirstChild() | 231 if (oldHorizontalWritingMode != isHorizontalWritingMode()) { |
| 214 && oldHorizontalWritingMode != isHorizontalWritingMode()) | 232 if (parent()) { |
| 215 LayoutBlock::clearPercentHeightDescendantsFrom(this); | 233 if (isOrthogonalWritingModeRoot()) |
| 234 markOrthogonalWritingModeRoot(); |
| 235 else |
| 236 unmarkOrthogonalWritingModeRoot(); |
| 237 } |
| 238 |
| 239 if (LayoutBlock::hasPercentHeightContainerMap() && slowFirstChild()) |
| 240 LayoutBlock::clearPercentHeightDescendantsFrom(this); |
| 241 } |
| 216 | 242 |
| 217 // If our zoom factor changes and we have a defined scrollLeft/Top, we need
to adjust that value into the | 243 // If our zoom factor changes and we have a defined scrollLeft/Top, we need
to adjust that value into the |
| 218 // new zoomed coordinate space. | 244 // new zoomed coordinate space. |
| 219 if (hasOverflowClip() && oldStyle && oldStyle->effectiveZoom() != newStyle.e
ffectiveZoom() && layer()) { | 245 if (hasOverflowClip() && oldStyle && oldStyle->effectiveZoom() != newStyle.e
ffectiveZoom() && layer()) { |
| 220 if (int left = layer()->scrollableArea()->scrollXOffset()) { | 246 if (int left = layer()->scrollableArea()->scrollXOffset()) { |
| 221 left = (left / oldStyle->effectiveZoom()) * newStyle.effectiveZoom()
; | 247 left = (left / oldStyle->effectiveZoom()) * newStyle.effectiveZoom()
; |
| 222 layer()->scrollableArea()->scrollToXOffset(left); | 248 layer()->scrollableArea()->scrollToXOffset(left); |
| 223 } | 249 } |
| 224 if (int top = layer()->scrollableArea()->scrollYOffset()) { | 250 if (int top = layer()->scrollableArea()->scrollYOffset()) { |
| 225 top = (top / oldStyle->effectiveZoom()) * newStyle.effectiveZoom(); | 251 top = (top / oldStyle->effectiveZoom()) * newStyle.effectiveZoom(); |
| (...skipping 3981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4207 | 4233 |
| 4208 void LayoutBox::markForPaginationRelayoutIfNeeded(SubtreeLayoutScope& layoutScop
e) | 4234 void LayoutBox::markForPaginationRelayoutIfNeeded(SubtreeLayoutScope& layoutScop
e) |
| 4209 { | 4235 { |
| 4210 ASSERT(!needsLayout()); | 4236 ASSERT(!needsLayout()); |
| 4211 // If fragmentation height has changed, we need to lay out. No need to enter
the layoutObject if it | 4237 // If fragmentation height has changed, we need to lay out. No need to enter
the layoutObject if it |
| 4212 // is childless, though. | 4238 // is childless, though. |
| 4213 if (view()->layoutState()->pageLogicalHeightChanged() && slowFirstChild()) | 4239 if (view()->layoutState()->pageLogicalHeightChanged() && slowFirstChild()) |
| 4214 layoutScope.setChildNeedsLayout(this); | 4240 layoutScope.setChildNeedsLayout(this); |
| 4215 } | 4241 } |
| 4216 | 4242 |
| 4243 void LayoutBox::markOrthogonalWritingModeRoot() |
| 4244 { |
| 4245 ASSERT(frameView()); |
| 4246 frameView()->addOrthogonalWritingModeRoot(*this); |
| 4247 } |
| 4248 |
| 4249 void LayoutBox::unmarkOrthogonalWritingModeRoot() |
| 4250 { |
| 4251 ASSERT(frameView()); |
| 4252 frameView()->removeOrthogonalWritingModeRoot(*this); |
| 4253 } |
| 4254 |
| 4217 void LayoutBox::addVisualEffectOverflow() | 4255 void LayoutBox::addVisualEffectOverflow() |
| 4218 { | 4256 { |
| 4219 if (!style()->hasVisualOverflowingEffect()) | 4257 if (!style()->hasVisualOverflowingEffect()) |
| 4220 return; | 4258 return; |
| 4221 | 4259 |
| 4222 // Add in the final overflow with shadows, outsets and outline combined. | 4260 // Add in the final overflow with shadows, outsets and outline combined. |
| 4223 LayoutRect visualEffectOverflow = borderBoxRect(); | 4261 LayoutRect visualEffectOverflow = borderBoxRect(); |
| 4224 visualEffectOverflow.expand(computeVisualEffectOverflowOutsets()); | 4262 visualEffectOverflow.expand(computeVisualEffectOverflowOutsets()); |
| 4225 addVisualOverflow(visualEffectOverflow); | 4263 addVisualOverflow(visualEffectOverflow); |
| 4226 } | 4264 } |
| (...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4889 } | 4927 } |
| 4890 | 4928 |
| 4891 void LayoutBox::clearPreviousPaintInvalidationRects() | 4929 void LayoutBox::clearPreviousPaintInvalidationRects() |
| 4892 { | 4930 { |
| 4893 LayoutBoxModelObject::clearPreviousPaintInvalidationRects(); | 4931 LayoutBoxModelObject::clearPreviousPaintInvalidationRects(); |
| 4894 if (PaintLayerScrollableArea* scrollableArea = this->scrollableArea()) | 4932 if (PaintLayerScrollableArea* scrollableArea = this->scrollableArea()) |
| 4895 scrollableArea->clearPreviousPaintInvalidationRects(); | 4933 scrollableArea->clearPreviousPaintInvalidationRects(); |
| 4896 } | 4934 } |
| 4897 | 4935 |
| 4898 } // namespace blink | 4936 } // namespace blink |
| OLD | NEW |