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) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
All rights reserved. |
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
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 3789 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3800 if (renderer->isOutOfFlowPositioned() || !renderer->needsOverflowRecalcAfter
StyleChange()) | 3800 if (renderer->isOutOfFlowPositioned() || !renderer->needsOverflowRecalcAfter
StyleChange()) |
3801 return false; | 3801 return false; |
3802 | 3802 |
3803 ASSERT(renderer->isRenderBlock()); | 3803 ASSERT(renderer->isRenderBlock()); |
3804 return toRenderBlock(renderer)->recalcOverflowAfterStyleChange(); | 3804 return toRenderBlock(renderer)->recalcOverflowAfterStyleChange(); |
3805 } | 3805 } |
3806 | 3806 |
3807 bool RenderBlock::recalcChildOverflowAfterStyleChange() | 3807 bool RenderBlock::recalcChildOverflowAfterStyleChange() |
3808 { | 3808 { |
3809 ASSERT(childNeedsOverflowRecalcAfterStyleChange()); | 3809 ASSERT(childNeedsOverflowRecalcAfterStyleChange()); |
3810 setChildNeedsOverflowRecalcAfterStyleChange(false); | 3810 clearChildNeedsOverflowRecalcAfterStyleChange(); |
3811 | 3811 |
3812 bool childrenOverflowChanged = false; | 3812 bool childrenOverflowChanged = false; |
3813 | 3813 |
3814 if (childrenInline()) { | 3814 if (childrenInline()) { |
3815 ListHashSet<RootInlineBox*> lineBoxes; | 3815 ListHashSet<RootInlineBox*> lineBoxes; |
3816 for (InlineWalker walker(this); !walker.atEnd(); walker.advance()) { | 3816 for (InlineWalker walker(this); !walker.atEnd(); walker.advance()) { |
3817 RenderObject* renderer = walker.current(); | 3817 RenderObject* renderer = walker.current(); |
3818 if (recalcNormalFlowChildOverflowIfNeeded(renderer)) { | 3818 if (recalcNormalFlowChildOverflowIfNeeded(renderer)) { |
3819 childrenOverflowChanged = true; | 3819 childrenOverflowChanged = true; |
3820 if (InlineBox* inlineBoxWrapper = toRenderBlock(renderer)->inlin
eBoxWrapper()) | 3820 if (InlineBox* inlineBoxWrapper = toRenderBlock(renderer)->inlin
eBoxWrapper()) |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3858 { | 3858 { |
3859 ASSERT(needsOverflowRecalcAfterStyleChange()); | 3859 ASSERT(needsOverflowRecalcAfterStyleChange()); |
3860 | 3860 |
3861 bool childrenOverflowChanged = false; | 3861 bool childrenOverflowChanged = false; |
3862 if (childNeedsOverflowRecalcAfterStyleChange()) | 3862 if (childNeedsOverflowRecalcAfterStyleChange()) |
3863 childrenOverflowChanged = recalcChildOverflowAfterStyleChange(); | 3863 childrenOverflowChanged = recalcChildOverflowAfterStyleChange(); |
3864 | 3864 |
3865 if (!selfNeedsOverflowRecalcAfterStyleChange() && !childrenOverflowChanged) | 3865 if (!selfNeedsOverflowRecalcAfterStyleChange() && !childrenOverflowChanged) |
3866 return false; | 3866 return false; |
3867 | 3867 |
3868 setSelfNeedsOverflowRecalcAfterStyleChange(false); | 3868 clearSelfNeedsOverflowRecalcAfterStyleChange(); |
3869 // If the current block needs layout, overflow will be recalculated during | 3869 // If the current block needs layout, overflow will be recalculated during |
3870 // layout time anyway. We can safely exit here. | 3870 // layout time anyway. We can safely exit here. |
3871 if (needsLayout()) | 3871 if (needsLayout()) |
3872 return false; | 3872 return false; |
3873 | 3873 |
3874 LayoutUnit oldClientAfterEdge = hasRenderOverflow() ? m_overflow->layoutClie
ntAfterEdge() : clientLogicalBottom(); | 3874 LayoutUnit oldClientAfterEdge = hasRenderOverflow() ? m_overflow->layoutClie
ntAfterEdge() : clientLogicalBottom(); |
3875 computeOverflow(oldClientAfterEdge, true); | 3875 computeOverflow(oldClientAfterEdge, true); |
3876 | 3876 |
3877 if (hasOverflowClip()) | 3877 if (hasOverflowClip()) |
3878 layer()->scrollableArea()->updateAfterOverflowRecalc(); | 3878 layer()->scrollableArea()->updateAfterOverflowRecalc(); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3915 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const | 3915 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const |
3916 { | 3916 { |
3917 showRenderObject(); | 3917 showRenderObject(); |
3918 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) | 3918 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) |
3919 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); | 3919 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); |
3920 } | 3920 } |
3921 | 3921 |
3922 #endif | 3922 #endif |
3923 | 3923 |
3924 } // namespace blink | 3924 } // namespace blink |
OLD | NEW |