| 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-2013 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003-2013 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 * Copyright (C) 2013 Google Inc. All rights reserved. | 7 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 8 * | 8 * |
| 9 * Redistribution and use in source and binary forms, with or without | 9 * Redistribution and use in source and binary forms, with or without |
| 10 * modification, are permitted provided that the following conditions are | 10 * modification, are permitted provided that the following conditions are |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 #include "core/rendering/FloatingObjects.h" | 39 #include "core/rendering/FloatingObjects.h" |
| 40 #include "core/rendering/RenderBlock.h" | 40 #include "core/rendering/RenderBlock.h" |
| 41 #include "core/rendering/line/TrailingObjects.h" | 41 #include "core/rendering/line/TrailingObjects.h" |
| 42 #include "core/rendering/style/RenderStyleConstants.h" | 42 #include "core/rendering/style/RenderStyleConstants.h" |
| 43 | 43 |
| 44 namespace WebCore { | 44 namespace WebCore { |
| 45 | 45 |
| 46 class MarginInfo; | 46 class MarginInfo; |
| 47 class LineBreaker; | 47 class LineBreaker; |
| 48 class LineWidth; | 48 class LineWidth; |
| 49 class RenderMultiColumnFlowThread; |
| 49 | 50 |
| 50 class RenderBlockFlow : public RenderBlock { | 51 class RenderBlockFlow : public RenderBlock { |
| 51 public: | 52 public: |
| 52 explicit RenderBlockFlow(ContainerNode*); | 53 explicit RenderBlockFlow(ContainerNode*); |
| 53 virtual ~RenderBlockFlow(); | 54 virtual ~RenderBlockFlow(); |
| 54 | 55 |
| 55 static RenderBlockFlow* createAnonymous(Document*); | 56 static RenderBlockFlow* createAnonymous(Document*); |
| 56 RenderBlockFlow* createAnonymousBlockFlow() const; | 57 RenderBlockFlow* createAnonymousBlockFlow() const; |
| 57 | 58 |
| 58 virtual bool isRenderBlockFlow() const OVERRIDE FINAL { return true; } | 59 virtual bool isRenderBlockFlow() const OVERRIDE FINAL { return true; } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 105 RootInlineBox* createAndAppendRootInlineBox(); | 106 RootInlineBox* createAndAppendRootInlineBox(); |
| 106 | 107 |
| 107 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo
l inLayout = true); | 108 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo
l inLayout = true); |
| 108 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); | 109 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); |
| 109 | 110 |
| 110 virtual bool containsFloats() const OVERRIDE FINAL { return m_floatingObject
s && !m_floatingObjects->set().isEmpty(); } | 111 virtual bool containsFloats() const OVERRIDE FINAL { return m_floatingObject
s && !m_floatingObjects->set().isEmpty(); } |
| 111 bool containsFloat(RenderBox*) const; | 112 bool containsFloat(RenderBox*) const; |
| 112 | 113 |
| 113 void removeFloatingObjects(); | 114 void removeFloatingObjects(); |
| 114 | 115 |
| 116 virtual void addChild(RenderObject* newChild, RenderObject* beforeChild = 0)
OVERRIDE; |
| 117 |
| 115 void moveAllChildrenIncludingFloatsTo(RenderBlock* toBlock, bool fullRemoveI
nsert); | 118 void moveAllChildrenIncludingFloatsTo(RenderBlock* toBlock, bool fullRemoveI
nsert); |
| 116 | 119 |
| 117 bool generatesLineBoxesForInlineChild(RenderObject*); | 120 bool generatesLineBoxesForInlineChild(RenderObject*); |
| 118 | 121 |
| 119 LayoutUnit logicalTopForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->y() : floatingObject->x(); } | 122 LayoutUnit logicalTopForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->y() : floatingObject->x(); } |
| 120 LayoutUnit logicalBottomForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxY() : floatingObject->m
axX(); } | 123 LayoutUnit logicalBottomForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxY() : floatingObject->m
axX(); } |
| 121 LayoutUnit logicalLeftForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->x() : floatingObject->y(); } | 124 LayoutUnit logicalLeftForFloat(const FloatingObject* floatingObject) const {
return isHorizontalWritingMode() ? floatingObject->x() : floatingObject->y(); } |
| 122 LayoutUnit logicalRightForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxX() : floatingObject->ma
xY(); } | 125 LayoutUnit logicalRightForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->maxX() : floatingObject->ma
xY(); } |
| 123 LayoutUnit logicalWidthForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->width() : floatingObject->h
eight(); } | 126 LayoutUnit logicalWidthForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->width() : floatingObject->h
eight(); } |
| 124 LayoutUnit logicalHeightForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->height() : floatingObject-
>width(); } | 127 LayoutUnit logicalHeightForFloat(const FloatingObject* floatingObject) const
{ return isHorizontalWritingMode() ? floatingObject->height() : floatingObject-
>width(); } |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 | 187 |
| 185 static TextRun constructTextRun(RenderObject* context, const Font&, const Re
nderText*, unsigned offset, RenderStyle*, | 188 static TextRun constructTextRun(RenderObject* context, const Font&, const Re
nderText*, unsigned offset, RenderStyle*, |
| 186 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun::
ForbidLeadingExpansion); | 189 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun::
ForbidLeadingExpansion); |
| 187 | 190 |
| 188 static TextRun constructTextRun(RenderObject* context, const Font&, const LC
har* characters, int length, RenderStyle*, TextDirection, | 191 static TextRun constructTextRun(RenderObject* context, const Font&, const LC
har* characters, int length, RenderStyle*, TextDirection, |
| 189 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun::
ForbidLeadingExpansion); | 192 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun::
ForbidLeadingExpansion); |
| 190 | 193 |
| 191 static TextRun constructTextRun(RenderObject* context, const Font&, const UC
har* characters, int length, RenderStyle*, TextDirection, | 194 static TextRun constructTextRun(RenderObject* context, const Font&, const UC
har* characters, int length, RenderStyle*, TextDirection, |
| 192 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun::
ForbidLeadingExpansion); | 195 TextRun::ExpansionBehavior = TextRun::AllowTrailingExpansion | TextRun::
ForbidLeadingExpansion); |
| 193 | 196 |
| 197 RenderMultiColumnFlowThread* multiColumnFlowThread() const { return m_rareDa
ta ? m_rareData->m_multiColumnFlowThread : 0; } |
| 198 |
| 194 void addOverflowFromInlineChildren(); | 199 void addOverflowFromInlineChildren(); |
| 195 | 200 |
| 196 GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& root
BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, | 201 GapRects inlineSelectionGaps(RenderBlock* rootBlock, const LayoutPoint& root
BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, |
| 197 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las
tLogicalRight, const PaintInfo*); | 202 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las
tLogicalRight, const PaintInfo*); |
| 198 protected: | 203 protected: |
| 199 void rebuildFloatsFromIntruding(); | 204 void rebuildFloatsFromIntruding(); |
| 200 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& repaintLogicalT
op, LayoutUnit& repaintLogicalBottom, LayoutUnit afterEdge); | 205 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& repaintLogicalT
op, LayoutUnit& repaintLogicalBottom, LayoutUnit afterEdge); |
| 201 | 206 |
| 202 void createFloatingObjects(); | 207 void createFloatingObjects(); |
| 203 | 208 |
| 204 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle) O
VERRIDE; | 209 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle) O
VERRIDE; |
| 205 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; | 210 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; |
| 206 | 211 |
| 207 void addOverflowFromFloats(); | 212 void addOverflowFromFloats(); |
| 208 | 213 |
| 209 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed
Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const | 214 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed
Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const |
| 210 { | 215 { |
| 211 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo
gicalTop, fixedOffset, logicalHeight), applyTextIndent); | 216 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo
gicalTop, fixedOffset, logicalHeight), applyTextIndent); |
| 212 } | 217 } |
| 213 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO
ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const | 218 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO
ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const |
| 214 { | 219 { |
| 215 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi
calTop, fixedOffset, logicalHeight), applyTextIndent); | 220 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi
calTop, fixedOffset, logicalHeight), applyTextIndent); |
| 216 } | 221 } |
| 217 | 222 |
| 223 virtual RenderObject* layoutSpecialExcludedChild(bool /*relayoutChildren*/,
SubtreeLayoutScope&); |
| 224 virtual bool updateLogicalWidthAndColumnWidth() OVERRIDE; |
| 225 |
| 218 private: | 226 private: |
| 219 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S
ubtreeLayoutScope&); | 227 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S
ubtreeLayoutScope&); |
| 220 void layoutBlockChildren(bool relayoutChildren, LayoutUnit& maxFloatLogicalB
ottom, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge); | 228 void layoutBlockChildren(bool relayoutChildren, LayoutUnit& maxFloatLogicalB
ottom, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge); |
| 221 | 229 |
| 222 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo
atLogicalBottom, LayoutUnit& maxFloatLogicalBottom); | 230 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo
atLogicalBottom, LayoutUnit& maxFloatLogicalBottom); |
| 223 void adjustPositionedBlock(RenderBox* child, const MarginInfo&); | 231 void adjustPositionedBlock(RenderBox* child, const MarginInfo&); |
| 224 void adjustFloatingBlock(const MarginInfo&); | 232 void adjustFloatingBlock(const MarginInfo&); |
| 225 | 233 |
| 226 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay
outPoint&) const; | 234 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay
outPoint&) const; |
| 227 | 235 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 275 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo
utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; | 283 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo
utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; |
| 276 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou
tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; | 284 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou
tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; |
| 277 | 285 |
| 278 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; | 286 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; |
| 279 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; | 287 LayoutUnit adjustLogicalLeftOffsetForLine(LayoutUnit offsetFromFloats, bool
applyTextIndent) const; |
| 280 | 288 |
| 281 virtual void adjustForBorderFit(LayoutUnit x, LayoutUnit& left, LayoutUnit&
right) const OVERRIDE; // Helper function for borderFitAdjust | 289 virtual void adjustForBorderFit(LayoutUnit x, LayoutUnit& left, LayoutUnit&
right) const OVERRIDE; // Helper function for borderFitAdjust |
| 282 | 290 |
| 283 virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG | 291 virtual RootInlineBox* createRootInlineBox(); // Subclassed by SVG |
| 284 | 292 |
| 293 void createMultiColumnFlowThreadIfNeeded(); |
| 294 |
| 285 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*,
BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float&
availableLogicalWidth, int expansionOpportunityCount); | 295 void updateLogicalWidthForAlignment(const ETextAlign&, const RootInlineBox*,
BidiRun* trailingSpaceRun, float& logicalLeft, float& totalLogicalWidth, float&
availableLogicalWidth, int expansionOpportunityCount); |
| 286 virtual void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHe
ight, bool& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight); | 296 void checkForPaginationLogicalHeightChange(LayoutUnit& pageLogicalHeight, bo
ol& pageLogicalHeightChanged, bool& hasSpecifiedPageLogicalHeight); |
| 287 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l
ayoutOverflowLogicalBottom) const; | 297 bool shouldRelayoutForPagination(LayoutUnit& pageLogicalHeight, LayoutUnit l
ayoutOverflowLogicalBottom) const; |
| 288 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight); | 298 void setColumnCountAndHeight(unsigned count, LayoutUnit pageLogicalHeight); |
| 289 | 299 |
| 290 public: | 300 public: |
| 291 struct FloatWithRect { | 301 struct FloatWithRect { |
| 292 FloatWithRect(RenderBox* f) | 302 FloatWithRect(RenderBox* f) |
| 293 : object(f) | 303 : object(f) |
| 294 , rect(LayoutRect(f->x() - f->marginLeft(), f->y() - f->marginTop(),
f->width() + f->marginWidth(), f->height() + f->marginHeight())) | 304 , rect(LayoutRect(f->x() - f->marginLeft(), f->y() - f->marginTop(),
f->width() + f->marginWidth(), f->height() + f->marginHeight())) |
| 295 , everHadLayout(f->everHadLayout()) | 305 , everHadLayout(f->everHadLayout()) |
| 296 { | 306 { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 327 LayoutUnit m_negativeMarginAfter; | 337 LayoutUnit m_negativeMarginAfter; |
| 328 }; | 338 }; |
| 329 MarginValues marginValuesForChild(RenderBox* child) const; | 339 MarginValues marginValuesForChild(RenderBox* child) const; |
| 330 | 340 |
| 331 // Allocated only when some of these fields have non-default values | 341 // Allocated only when some of these fields have non-default values |
| 332 struct RenderBlockFlowRareData { | 342 struct RenderBlockFlowRareData { |
| 333 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; | 343 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; |
| 334 public: | 344 public: |
| 335 RenderBlockFlowRareData(const RenderBlockFlow* block) | 345 RenderBlockFlowRareData(const RenderBlockFlow* block) |
| 336 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore
Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl
ock)) | 346 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore
Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl
ock)) |
| 347 , m_multiColumnFlowThread(0) |
| 337 , m_discardMarginBefore(false) | 348 , m_discardMarginBefore(false) |
| 338 , m_discardMarginAfter(false) | 349 , m_discardMarginAfter(false) |
| 339 { | 350 { |
| 340 } | 351 } |
| 341 | 352 |
| 342 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo
ck) | 353 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo
ck) |
| 343 { | 354 { |
| 344 return std::max<LayoutUnit>(block->marginBefore(), 0); | 355 return std::max<LayoutUnit>(block->marginBefore(), 0); |
| 345 } | 356 } |
| 346 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo
ck) | 357 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo
ck) |
| 347 { | 358 { |
| 348 return std::max<LayoutUnit>(-block->marginBefore(), 0); | 359 return std::max<LayoutUnit>(-block->marginBefore(), 0); |
| 349 } | 360 } |
| 350 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc
k) | 361 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc
k) |
| 351 { | 362 { |
| 352 return std::max<LayoutUnit>(block->marginAfter(), 0); | 363 return std::max<LayoutUnit>(block->marginAfter(), 0); |
| 353 } | 364 } |
| 354 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc
k) | 365 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc
k) |
| 355 { | 366 { |
| 356 return std::max<LayoutUnit>(-block->marginAfter(), 0); | 367 return std::max<LayoutUnit>(-block->marginAfter(), 0); |
| 357 } | 368 } |
| 358 | 369 |
| 359 MarginValues m_margins; | 370 MarginValues m_margins; |
| 360 | 371 |
| 372 RenderMultiColumnFlowThread* m_multiColumnFlowThread; |
| 373 |
| 361 bool m_discardMarginBefore : 1; | 374 bool m_discardMarginBefore : 1; |
| 362 bool m_discardMarginAfter : 1; | 375 bool m_discardMarginAfter : 1; |
| 363 }; | 376 }; |
| 364 LayoutUnit marginOffsetForSelfCollapsingBlock(); | 377 LayoutUnit marginOffsetForSelfCollapsingBlock(); |
| 365 | 378 |
| 366 protected: | 379 protected: |
| 367 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor
eDefault(this); } | 380 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor
eDefault(this); } |
| 368 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor
eDefault(this); } | 381 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData-
>m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor
eDefault(this); } |
| 369 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData->
m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe
fault(this); } | 382 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData->
m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe
fault(this); } |
| 370 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData->
m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe
fault(this); } | 383 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData->
m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe
fault(this); } |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 | 481 |
| 469 // END METHODS DEFINED IN RenderBlockLineLayout | 482 // END METHODS DEFINED IN RenderBlockLineLayout |
| 470 | 483 |
| 471 }; | 484 }; |
| 472 | 485 |
| 473 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); | 486 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); |
| 474 | 487 |
| 475 } // namespace WebCore | 488 } // namespace WebCore |
| 476 | 489 |
| 477 #endif // RenderBlockFlow_h | 490 #endif // RenderBlockFlow_h |
| OLD | NEW |