| 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 | 126 |
| 127 void LayoutBox::willBeDestroyed() | 127 void LayoutBox::willBeDestroyed() |
| 128 { | 128 { |
| 129 clearOverrideSize(); | 129 clearOverrideSize(); |
| 130 clearContainingBlockOverrideSize(); | 130 clearContainingBlockOverrideSize(); |
| 131 clearExtraInlineAndBlockOffests(); | 131 clearExtraInlineAndBlockOffests(); |
| 132 | 132 |
| 133 if (isOutOfFlowPositioned()) | 133 if (isOutOfFlowPositioned()) |
| 134 LayoutBlock::removePositionedObject(this); | 134 LayoutBlock::removePositionedObject(this); |
| 135 removeFromPercentHeightContainer(); | 135 removeFromPercentHeightContainer(); |
| 136 if (isOrthogonalWritingModeRoot() && !documentBeingDestroyed()) |
| 137 unmarkOrthogonalWritingModeRoot(); |
| 136 | 138 |
| 137 ShapeOutsideInfo::removeInfo(*this); | 139 ShapeOutsideInfo::removeInfo(*this); |
| 138 | 140 |
| 139 LayoutBoxModelObject::willBeDestroyed(); | 141 LayoutBoxModelObject::willBeDestroyed(); |
| 140 } | 142 } |
| 141 | 143 |
| 144 void LayoutBox::insertedIntoTree() |
| 145 { |
| 146 LayoutBoxModelObject::insertedIntoTree(); |
| 147 |
| 148 if (isOrthogonalWritingModeRoot()) |
| 149 markOrthogonalWritingModeRoot(); |
| 150 } |
| 151 |
| 152 void LayoutBox::willBeRemovedFromTree() |
| 153 { |
| 154 if (!documentBeingDestroyed() && isOrthogonalWritingModeRoot()) |
| 155 unmarkOrthogonalWritingModeRoot(); |
| 156 |
| 157 LayoutBoxModelObject::willBeRemovedFromTree(); |
| 158 } |
| 159 |
| 142 void LayoutBox::removeFloatingOrPositionedChildFromBlockLists() | 160 void LayoutBox::removeFloatingOrPositionedChildFromBlockLists() |
| 143 { | 161 { |
| 144 ASSERT(isFloatingOrOutOfFlowPositioned()); | 162 ASSERT(isFloatingOrOutOfFlowPositioned()); |
| 145 | 163 |
| 146 if (documentBeingDestroyed()) | 164 if (documentBeingDestroyed()) |
| 147 return; | 165 return; |
| 148 | 166 |
| 149 if (isFloating()) { | 167 if (isFloating()) { |
| 150 LayoutBlockFlow* parentBlockFlow = nullptr; | 168 LayoutBlockFlow* parentBlockFlow = nullptr; |
| 151 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr
= curr->parent()) { | 169 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr
= curr->parent()) { |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 // (as part of the LayoutBoxModelObject::styleDidChange call below). So, we
can safely cache the horizontal | 234 // (as part of the LayoutBoxModelObject::styleDidChange call below). So, we
can safely cache the horizontal |
| 217 // writing mode value before style change here. | 235 // writing mode value before style change here. |
| 218 bool oldHorizontalWritingMode = isHorizontalWritingMode(); | 236 bool oldHorizontalWritingMode = isHorizontalWritingMode(); |
| 219 | 237 |
| 220 LayoutBoxModelObject::styleDidChange(diff, oldStyle); | 238 LayoutBoxModelObject::styleDidChange(diff, oldStyle); |
| 221 | 239 |
| 222 const ComputedStyle& newStyle = styleRef(); | 240 const ComputedStyle& newStyle = styleRef(); |
| 223 if (needsLayout() && oldStyle) | 241 if (needsLayout() && oldStyle) |
| 224 removeFromPercentHeightContainer(); | 242 removeFromPercentHeightContainer(); |
| 225 | 243 |
| 226 if (oldHorizontalWritingMode != isHorizontalWritingMode()) | 244 if (oldHorizontalWritingMode != isHorizontalWritingMode()) { |
| 245 if (parent()) { |
| 246 if (isOrthogonalWritingModeRoot()) |
| 247 markOrthogonalWritingModeRoot(); |
| 248 else |
| 249 unmarkOrthogonalWritingModeRoot(); |
| 250 } |
| 251 |
| 227 clearPercentHeightDescendants(); | 252 clearPercentHeightDescendants(); |
| 253 } |
| 228 | 254 |
| 229 // If our zoom factor changes and we have a defined scrollLeft/Top, we need
to adjust that value into the | 255 // If our zoom factor changes and we have a defined scrollLeft/Top, we need
to adjust that value into the |
| 230 // new zoomed coordinate space. | 256 // new zoomed coordinate space. |
| 231 if (hasOverflowClip() && oldStyle && oldStyle->effectiveZoom() != newStyle.e
ffectiveZoom() && layer()) { | 257 if (hasOverflowClip() && oldStyle && oldStyle->effectiveZoom() != newStyle.e
ffectiveZoom() && layer()) { |
| 232 if (int left = layer()->scrollableArea()->scrollXOffset()) { | 258 if (int left = layer()->scrollableArea()->scrollXOffset()) { |
| 233 left = (left / oldStyle->effectiveZoom()) * newStyle.effectiveZoom()
; | 259 left = (left / oldStyle->effectiveZoom()) * newStyle.effectiveZoom()
; |
| 234 layer()->scrollableArea()->scrollToXOffset(left); | 260 layer()->scrollableArea()->scrollToXOffset(left); |
| 235 } | 261 } |
| 236 if (int top = layer()->scrollableArea()->scrollYOffset()) { | 262 if (int top = layer()->scrollableArea()->scrollYOffset()) { |
| 237 top = (top / oldStyle->effectiveZoom()) * newStyle.effectiveZoom(); | 263 top = (top / oldStyle->effectiveZoom()) * newStyle.effectiveZoom(); |
| (...skipping 3692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3930 | 3956 |
| 3931 void LayoutBox::markForPaginationRelayoutIfNeeded(SubtreeLayoutScope& layoutScop
e) | 3957 void LayoutBox::markForPaginationRelayoutIfNeeded(SubtreeLayoutScope& layoutScop
e) |
| 3932 { | 3958 { |
| 3933 ASSERT(!needsLayout()); | 3959 ASSERT(!needsLayout()); |
| 3934 // If fragmentation height has changed, we need to lay out. No need to enter
the layoutObject if it | 3960 // If fragmentation height has changed, we need to lay out. No need to enter
the layoutObject if it |
| 3935 // is childless, though. | 3961 // is childless, though. |
| 3936 if (view()->layoutState()->pageLogicalHeightChanged() && slowFirstChild()) | 3962 if (view()->layoutState()->pageLogicalHeightChanged() && slowFirstChild()) |
| 3937 layoutScope.setChildNeedsLayout(this); | 3963 layoutScope.setChildNeedsLayout(this); |
| 3938 } | 3964 } |
| 3939 | 3965 |
| 3966 void LayoutBox::markOrthogonalWritingModeRoot() |
| 3967 { |
| 3968 ASSERT(frameView()); |
| 3969 frameView()->addOrthogonalWritingModeRoot(*this); |
| 3970 } |
| 3971 |
| 3972 void LayoutBox::unmarkOrthogonalWritingModeRoot() |
| 3973 { |
| 3974 ASSERT(frameView()); |
| 3975 frameView()->removeOrthogonalWritingModeRoot(*this); |
| 3976 } |
| 3977 |
| 3940 void LayoutBox::addVisualEffectOverflow() | 3978 void LayoutBox::addVisualEffectOverflow() |
| 3941 { | 3979 { |
| 3942 if (!style()->hasVisualOverflowingEffect()) | 3980 if (!style()->hasVisualOverflowingEffect()) |
| 3943 return; | 3981 return; |
| 3944 | 3982 |
| 3945 // Add in the final overflow with shadows, outsets and outline combined. | 3983 // Add in the final overflow with shadows, outsets and outline combined. |
| 3946 LayoutRect visualEffectOverflow = borderBoxRect(); | 3984 LayoutRect visualEffectOverflow = borderBoxRect(); |
| 3947 visualEffectOverflow.expand(computeVisualEffectOverflowOutsets()); | 3985 visualEffectOverflow.expand(computeVisualEffectOverflowOutsets()); |
| 3948 addVisualOverflow(visualEffectOverflow); | 3986 addVisualOverflow(visualEffectOverflow); |
| 3949 } | 3987 } |
| (...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4643 | 4681 |
| 4644 void LayoutBox::clearPercentHeightDescendants() | 4682 void LayoutBox::clearPercentHeightDescendants() |
| 4645 { | 4683 { |
| 4646 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde
r(this)) { | 4684 for (LayoutObject* curr = slowFirstChild(); curr; curr = curr->nextInPreOrde
r(this)) { |
| 4647 if (curr->isBox()) | 4685 if (curr->isBox()) |
| 4648 toLayoutBox(curr)->removeFromPercentHeightContainer(); | 4686 toLayoutBox(curr)->removeFromPercentHeightContainer(); |
| 4649 } | 4687 } |
| 4650 } | 4688 } |
| 4651 | 4689 |
| 4652 } // namespace blink | 4690 } // namespace blink |
| OLD | NEW |