| 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 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 | 79 |
| 80 struct SameSizeAsRenderBlock : public RenderBox { | 80 struct SameSizeAsRenderBlock : public RenderBox { |
| 81 void* pointers[1]; | 81 void* pointers[1]; |
| 82 RenderObjectChildList children; | 82 RenderObjectChildList children; |
| 83 RenderLineBoxList lineBoxes; | 83 RenderLineBoxList lineBoxes; |
| 84 uint32_t bitfields; | 84 uint32_t bitfields; |
| 85 }; | 85 }; |
| 86 | 86 |
| 87 struct SameSizeAsRenderBlockRareData { | 87 struct SameSizeAsRenderBlockRareData { |
| 88 int pageLogicalOffset; | 88 int pageLogicalOffset; |
| 89 uint32_t bitfields; | |
| 90 }; | 89 }; |
| 91 | 90 |
| 92 COMPILE_ASSERT(sizeof(RenderBlock) == sizeof(SameSizeAsRenderBlock), RenderBlock
_should_stay_small); | 91 COMPILE_ASSERT(sizeof(RenderBlock) == sizeof(SameSizeAsRenderBlock), RenderBlock
_should_stay_small); |
| 93 COMPILE_ASSERT(sizeof(RenderBlock::RenderBlockRareData) == sizeof(SameSizeAsRend
erBlockRareData), RenderBlockRareData_should_stay_small); | 92 COMPILE_ASSERT(sizeof(RenderBlock::RenderBlockRareData) == sizeof(SameSizeAsRend
erBlockRareData), RenderBlockRareData_should_stay_small); |
| 94 | 93 |
| 95 typedef WTF::HashMap<const RenderBox*, OwnPtr<ColumnInfo> > ColumnInfoMap; | 94 typedef WTF::HashMap<const RenderBox*, OwnPtr<ColumnInfo> > ColumnInfoMap; |
| 96 static ColumnInfoMap* gColumnInfoMap = 0; | 95 static ColumnInfoMap* gColumnInfoMap = 0; |
| 97 | 96 |
| 98 static TrackedDescendantsMap* gPositionedDescendantsMap = 0; | 97 static TrackedDescendantsMap* gPositionedDescendantsMap = 0; |
| 99 static TrackedDescendantsMap* gPercentHeightDescendantsMap = 0; | 98 static TrackedDescendantsMap* gPercentHeightDescendantsMap = 0; |
| (...skipping 4274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4374 void RenderBlock::setPageLogicalOffset(LayoutUnit logicalOffset) | 4373 void RenderBlock::setPageLogicalOffset(LayoutUnit logicalOffset) |
| 4375 { | 4374 { |
| 4376 if (!m_rareData) { | 4375 if (!m_rareData) { |
| 4377 if (!logicalOffset) | 4376 if (!logicalOffset) |
| 4378 return; | 4377 return; |
| 4379 m_rareData = adoptPtr(new RenderBlockRareData()); | 4378 m_rareData = adoptPtr(new RenderBlockRareData()); |
| 4380 } | 4379 } |
| 4381 m_rareData->m_pageLogicalOffset = logicalOffset; | 4380 m_rareData->m_pageLogicalOffset = logicalOffset; |
| 4382 } | 4381 } |
| 4383 | 4382 |
| 4384 void RenderBlock::setBreakAtLineToAvoidWidow(int lineToBreak) | |
| 4385 { | |
| 4386 ASSERT(lineToBreak >= 0); | |
| 4387 if (!m_rareData) | |
| 4388 m_rareData = adoptPtr(new RenderBlockRareData()); | |
| 4389 | |
| 4390 ASSERT(!m_rareData->m_didBreakAtLineToAvoidWidow); | |
| 4391 m_rareData->m_lineBreakToAvoidWidow = lineToBreak; | |
| 4392 } | |
| 4393 | |
| 4394 void RenderBlock::setDidBreakAtLineToAvoidWidow() | |
| 4395 { | |
| 4396 ASSERT(!shouldBreakAtLineToAvoidWidow()); | |
| 4397 | |
| 4398 // This function should be called only after a break was applied to avoid wi
dows | |
| 4399 // so assert |m_rareData| exists. | |
| 4400 ASSERT(m_rareData); | |
| 4401 | |
| 4402 m_rareData->m_didBreakAtLineToAvoidWidow = true; | |
| 4403 } | |
| 4404 | |
| 4405 void RenderBlock::clearDidBreakAtLineToAvoidWidow() | |
| 4406 { | |
| 4407 if (!m_rareData) | |
| 4408 return; | |
| 4409 | |
| 4410 m_rareData->m_didBreakAtLineToAvoidWidow = false; | |
| 4411 } | |
| 4412 | |
| 4413 void RenderBlock::clearShouldBreakAtLineToAvoidWidow() const | |
| 4414 { | |
| 4415 ASSERT(shouldBreakAtLineToAvoidWidow()); | |
| 4416 if (!m_rareData) | |
| 4417 return; | |
| 4418 | |
| 4419 m_rareData->m_lineBreakToAvoidWidow = -1; | |
| 4420 } | |
| 4421 | |
| 4422 void RenderBlock::absoluteRects(Vector<IntRect>& rects, const LayoutPoint& accum
ulatedOffset) const | 4383 void RenderBlock::absoluteRects(Vector<IntRect>& rects, const LayoutPoint& accum
ulatedOffset) const |
| 4423 { | 4384 { |
| 4424 // For blocks inside inlines, we go ahead and include margins so that we run
right up to the | 4385 // For blocks inside inlines, we go ahead and include margins so that we run
right up to the |
| 4425 // inline boxes above and below us (thus getting merged with them to form a
single irregular | 4386 // inline boxes above and below us (thus getting merged with them to form a
single irregular |
| 4426 // shape). | 4387 // shape). |
| 4427 if (isAnonymousBlockContinuation()) { | 4388 if (isAnonymousBlockContinuation()) { |
| 4428 // FIXME: This is wrong for block-flows that are horizontal. | 4389 // FIXME: This is wrong for block-flows that are horizontal. |
| 4429 // https://bugs.webkit.org/show_bug.cgi?id=46781 | 4390 // https://bugs.webkit.org/show_bug.cgi?id=46781 |
| 4430 rects.append(pixelSnappedIntRect(accumulatedOffset.x(), accumulatedOffse
t.y() - collapsedMarginBefore(), | 4391 rects.append(pixelSnappedIntRect(accumulatedOffset.x(), accumulatedOffse
t.y() - collapsedMarginBefore(), |
| 4431 width(), height() + collapsedMarginBefore() + co
llapsedMarginAfter())); | 4392 width(), height() + collapsedMarginBefore() + co
llapsedMarginAfter())); |
| (...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4939 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const | 4900 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
Object* obj) const |
| 4940 { | 4901 { |
| 4941 showRenderObject(); | 4902 showRenderObject(); |
| 4942 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) | 4903 for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
Box()) |
| 4943 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); | 4904 root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
bel2, obj, 1); |
| 4944 } | 4905 } |
| 4945 | 4906 |
| 4946 #endif | 4907 #endif |
| 4947 | 4908 |
| 4948 } // namespace WebCore | 4909 } // namespace WebCore |
| OLD | NEW |