Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBlockFlow.h

Issue 1381993002: LayoutBlockFlow: rename paginationStrut to paginationStrutPropagatedFromChild. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase master Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, 211 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight,
212 const PaintInfo* = nullptr, ClipScope* = nullptr) const; 212 const PaintInfo* = nullptr, ClipScope* = nullptr) const;
213 GapRects inlineSelectionGaps(const LayoutBlock* rootBlock, const LayoutPoint & rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, 213 GapRects inlineSelectionGaps(const LayoutBlock* rootBlock, const LayoutPoint & rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
214 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*) const; 214 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*) const;
215 GapRects blockSelectionGaps(const LayoutBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, 215 GapRects blockSelectionGaps(const LayoutBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
216 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*) const; 216 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*) const;
217 LayoutRect blockSelectionGap(const LayoutBlock* rootBlock, const LayoutPoint & rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, 217 LayoutRect blockSelectionGap(const LayoutBlock* rootBlock, const LayoutPoint & rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
218 LayoutUnit lastLogicalTop, LayoutUnit lastLogicalLeft, LayoutUnit lastLo gicalRight, LayoutUnit logicalBottom, const PaintInfo*) const; 218 LayoutUnit lastLogicalTop, LayoutUnit lastLogicalLeft, LayoutUnit lastLo gicalRight, LayoutUnit logicalBottom, const PaintInfo*) const;
219 219
220 bool allowsPaginationStrut() const; 220 bool allowsPaginationStrut() const;
221 LayoutUnit paginationStrut() const { return m_rareData ? m_rareData->m_pagin ationStrut : LayoutUnit(); } 221 // Pagination strut caused by the first line or child block inside this bloc k-level object.
222 void setPaginationStrut(LayoutUnit); 222 //
223 // When the first piece of content (first child block or line) inside an obj ect wants to insert
224 // a soft page or column break, rather than setting a pagination strut on it self it normally
225 // propagates the strut to its containing block (|this|), as long as our imp lementation can
226 // handle it. The idea is that we want to push the entire object to the next page or column
227 // along with the child content that caused the break, instead of leaving un usable space at the
228 // beginning of the object at the end of one column or page and just push th e first line or
229 // block to the next column or page. That would waste space in the container for no good
230 // reason, and it would also be a spec violation, since there is no break op portunity defined
231 // between the content logical top of an object and its first child or line (only *between*
232 // blocks or lines).
233 LayoutUnit paginationStrutPropagatedFromChild() const { return m_rareData ? m_rareData->m_paginationStrutPropagatedFromChild : LayoutUnit(); }
234 void setPaginationStrutPropagatedFromChild(LayoutUnit);
223 235
224 void positionSpannerDescendant(LayoutMultiColumnSpannerPlaceholder& child); 236 void positionSpannerDescendant(LayoutMultiColumnSpannerPlaceholder& child);
225 237
226 bool avoidsFloats() const override; 238 bool avoidsFloats() const override;
227 239
228 using LayoutBoxModelObject::moveChildrenTo; 240 using LayoutBoxModelObject::moveChildrenTo;
229 void moveChildrenTo(LayoutBoxModelObject* toBoxModelObject, LayoutObject* st artChild, LayoutObject* endChild, LayoutObject* beforeChild, bool fullRemoveInse rt = false) override; 241 void moveChildrenTo(LayoutBoxModelObject* toBoxModelObject, LayoutObject* st artChild, LayoutObject* endChild, LayoutObject* beforeChild, bool fullRemoveInse rt = false) override;
230 242
231 LayoutUnit xPositionForFloatIncludingMargin(const FloatingObject& child) con st 243 LayoutUnit xPositionForFloatIncludingMargin(const FloatingObject& child) con st
232 { 244 {
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 LayoutUnit m_negativeMarginAfter; 427 LayoutUnit m_negativeMarginAfter;
416 }; 428 };
417 MarginValues marginValuesForChild(LayoutBox& child) const; 429 MarginValues marginValuesForChild(LayoutBox& child) const;
418 430
419 // Allocated only when some of these fields have non-default values 431 // Allocated only when some of these fields have non-default values
420 struct LayoutBlockFlowRareData { 432 struct LayoutBlockFlowRareData {
421 WTF_MAKE_NONCOPYABLE(LayoutBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED(L ayoutBlockFlowRareData); 433 WTF_MAKE_NONCOPYABLE(LayoutBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED(L ayoutBlockFlowRareData);
422 public: 434 public:
423 LayoutBlockFlowRareData(const LayoutBlockFlow* block) 435 LayoutBlockFlowRareData(const LayoutBlockFlow* block)
424 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl ock)) 436 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl ock))
425 , m_paginationStrut(0)
426 , m_multiColumnFlowThread(nullptr) 437 , m_multiColumnFlowThread(nullptr)
427 , m_lineBreakToAvoidWidow(-1) 438 , m_lineBreakToAvoidWidow(-1)
428 , m_didBreakAtLineToAvoidWidow(false) 439 , m_didBreakAtLineToAvoidWidow(false)
429 , m_discardMarginBefore(false) 440 , m_discardMarginBefore(false)
430 , m_discardMarginAfter(false) 441 , m_discardMarginAfter(false)
431 { 442 {
432 } 443 }
433 444
434 static LayoutUnit positiveMarginBeforeDefault(const LayoutBlockFlow* blo ck) 445 static LayoutUnit positiveMarginBeforeDefault(const LayoutBlockFlow* blo ck)
435 { 446 {
436 return std::max<LayoutUnit>(block->marginBefore(), 0); 447 return std::max<LayoutUnit>(block->marginBefore(), 0);
437 } 448 }
438 static LayoutUnit negativeMarginBeforeDefault(const LayoutBlockFlow* blo ck) 449 static LayoutUnit negativeMarginBeforeDefault(const LayoutBlockFlow* blo ck)
439 { 450 {
440 return std::max<LayoutUnit>(-block->marginBefore(), 0); 451 return std::max<LayoutUnit>(-block->marginBefore(), 0);
441 } 452 }
442 static LayoutUnit positiveMarginAfterDefault(const LayoutBlockFlow* bloc k) 453 static LayoutUnit positiveMarginAfterDefault(const LayoutBlockFlow* bloc k)
443 { 454 {
444 return std::max<LayoutUnit>(block->marginAfter(), 0); 455 return std::max<LayoutUnit>(block->marginAfter(), 0);
445 } 456 }
446 static LayoutUnit negativeMarginAfterDefault(const LayoutBlockFlow* bloc k) 457 static LayoutUnit negativeMarginAfterDefault(const LayoutBlockFlow* bloc k)
447 { 458 {
448 return std::max<LayoutUnit>(-block->marginAfter(), 0); 459 return std::max<LayoutUnit>(-block->marginAfter(), 0);
449 } 460 }
450 461
451 MarginValues m_margins; 462 MarginValues m_margins;
452 LayoutUnit m_paginationStrut; 463 LayoutUnit m_paginationStrutPropagatedFromChild;
453 464
454 LayoutMultiColumnFlowThread* m_multiColumnFlowThread; 465 LayoutMultiColumnFlowThread* m_multiColumnFlowThread;
455 466
456 int m_lineBreakToAvoidWidow; 467 int m_lineBreakToAvoidWidow;
457 bool m_didBreakAtLineToAvoidWidow : 1; 468 bool m_didBreakAtLineToAvoidWidow : 1;
458 bool m_discardMarginBefore : 1; 469 bool m_discardMarginBefore : 1;
459 bool m_discardMarginAfter : 1; 470 bool m_discardMarginAfter : 1;
460 }; 471 };
461 472
462 const FloatingObjects* floatingObjects() const { return m_floatingObjects.ge t(); } 473 const FloatingObjects* floatingObjects() const { return m_floatingObjects.ge t(); }
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 579
569 // END METHODS DEFINED IN LayoutBlockFlowLine 580 // END METHODS DEFINED IN LayoutBlockFlowLine
570 581
571 }; 582 };
572 583
573 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow()); 584 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow());
574 585
575 } // namespace blink 586 } // namespace blink
576 587
577 #endif // LayoutBlockFlow_h 588 #endif // LayoutBlockFlow_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698