Changeset 155368 in webkit
- Timestamp:
- Sep 9, 2013, 11:47:22 AM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
rendering/RenderBlock.cpp (modified) (3 diffs)
-
rendering/RenderBlock.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r155367 r155368 1 2013-09-09 Bem Jones-Bey <bjonesbe@adobe.com> 2 3 Move logical(Left|Right)FloatOffsetForLine methods into FloatingObjects 4 https://bugs.webkit.org/show_bug.cgi?id=120705 5 6 Reviewed by Sam Weinig. 7 8 These are the only consumers of the CalculateFloatOffsetAdapter and 9 the placed floats tree, so it will allow us to reduce the public 10 interface of FloatingObjects and make the placed floats tree private. 11 12 No new tests, no behavior change. 13 14 * rendering/RenderBlock.cpp: 15 (WebCore::RenderBlock::logicalLeftFloatOffsetForLine): 16 (WebCore::RenderBlock::logicalRightFloatOffsetForLine): 17 (WebCore::RenderBlock::FloatingObjects::logicalLeftOffset): 18 (WebCore::RenderBlock::FloatingObjects::logicalRightOffset): 19 * rendering/RenderBlock.h: 20 (WebCore::RenderBlock::FloatingObjects::placedFloatsTree): 21 1 22 2013-09-09 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 23 -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r155366 r155368 4556 4556 LayoutUnit RenderBlock::logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode) const 4557 4557 { 4558 #if !ENABLE(CSS_SHAPES) 4559 UNUSED_PARAM(offsetMode); 4560 #endif 4561 LayoutUnit left = fixedOffset; 4562 if (m_floatingObjects && m_floatingObjects->hasLeftObjects()) { 4563 ComputeFloatOffsetAdapter<FloatingObject::FloatLeft> adapter(this, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), left); 4564 m_floatingObjects->placedFloatsTree().allOverlapsWithAdapter(adapter); 4565 4566 if (heightRemaining) 4567 *heightRemaining = adapter.getHeightRemaining(); 4568 4569 #if ENABLE(CSS_SHAPES) 4570 const FloatingObject* outermostFloat = adapter.outermostFloat(); 4571 if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) { 4572 if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) { 4573 shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(isHorizontalWritingMode()), logicalHeight); 4574 left += shapeOutside->rightSegmentMarginBoxDelta(); 4575 } 4576 } 4577 #endif 4578 } 4579 4580 return left; 4558 if (m_floatingObjects && m_floatingObjects->hasLeftObjects()) 4559 return m_floatingObjects->logicalLeftOffset(fixedOffset, logicalTop, logicalHeight, offsetMode, heightRemaining); 4560 4561 return fixedOffset; 4581 4562 } 4582 4563 … … 4623 4604 LayoutUnit RenderBlock::logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit* heightRemaining, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode) const 4624 4605 { 4625 #if !ENABLE(CSS_SHAPES) 4626 UNUSED_PARAM(offsetMode); 4627 #endif 4628 LayoutUnit right = fixedOffset; 4629 if (m_floatingObjects && m_floatingObjects->hasRightObjects()) { 4630 LayoutUnit rightFloatOffset = fixedOffset; 4631 ComputeFloatOffsetAdapter<FloatingObject::FloatRight> adapter(this, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), rightFloatOffset); 4632 m_floatingObjects->placedFloatsTree().allOverlapsWithAdapter(adapter); 4633 4634 if (heightRemaining) 4635 *heightRemaining = adapter.getHeightRemaining(); 4636 4637 #if ENABLE(CSS_SHAPES) 4638 const FloatingObject* outermostFloat = adapter.outermostFloat(); 4639 if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) { 4640 if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) { 4641 shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(isHorizontalWritingMode()), logicalHeight); 4642 rightFloatOffset += shapeOutside->leftSegmentMarginBoxDelta(); 4643 } 4644 } 4645 #else 4646 UNUSED_PARAM(offsetMode); 4647 #endif 4648 4649 right = min(right, rightFloatOffset); 4650 } 4651 4652 return right; 4606 if (m_floatingObjects && m_floatingObjects->hasRightObjects()) 4607 return m_floatingObjects->logicalRightOffset(fixedOffset, logicalTop, logicalHeight, offsetMode, heightRemaining); 4608 4609 return fixedOffset; 4653 4610 } 4654 4611 … … 8341 8298 } 8342 8299 8300 LayoutUnit RenderBlock::FloatingObjects::logicalLeftOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode, LayoutUnit *heightRemaining) 8301 { 8302 #if !ENABLE(CSS_SHAPES) 8303 UNUSED_PARAM(offsetMode); 8304 #endif 8305 8306 LayoutUnit offset = fixedOffset; 8307 ComputeFloatOffsetAdapter<FloatingObject::FloatLeft> adapter(m_renderer, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), offset); 8308 placedFloatsTree().allOverlapsWithAdapter(adapter); 8309 8310 if (heightRemaining) 8311 *heightRemaining = adapter.getHeightRemaining(); 8312 8313 #if ENABLE(CSS_SHAPES) 8314 const FloatingObject* outermostFloat = adapter.outermostFloat(); 8315 if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) { 8316 if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) { 8317 shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(m_horizontalWritingMode), logicalHeight); 8318 offset += shapeOutside->rightSegmentMarginBoxDelta(); 8319 } 8320 } 8321 #endif 8322 8323 return offset; 8324 } 8325 8326 LayoutUnit RenderBlock::FloatingObjects::logicalRightOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode offsetMode, LayoutUnit *heightRemaining) 8327 { 8328 #if !ENABLE(CSS_SHAPES) 8329 UNUSED_PARAM(offsetMode); 8330 #endif 8331 8332 LayoutUnit offset = fixedOffset; 8333 ComputeFloatOffsetAdapter<FloatingObject::FloatRight> adapter(m_renderer, roundToInt(logicalTop), roundToInt(logicalTop + logicalHeight), offset); 8334 placedFloatsTree().allOverlapsWithAdapter(adapter); 8335 8336 if (heightRemaining) 8337 *heightRemaining = adapter.getHeightRemaining(); 8338 8339 #if ENABLE(CSS_SHAPES) 8340 const FloatingObject* outermostFloat = adapter.outermostFloat(); 8341 if (offsetMode == ShapeOutsideFloatShapeOffset && outermostFloat) { 8342 if (ShapeOutsideInfo* shapeOutside = outermostFloat->renderer()->shapeOutsideInfo()) { 8343 shapeOutside->computeSegmentsForContainingBlockLine(logicalTop, outermostFloat->logicalTop(m_horizontalWritingMode), logicalHeight); 8344 offset += shapeOutside->leftSegmentMarginBoxDelta(); 8345 } 8346 } 8347 #endif 8348 8349 return min(fixedOffset, offset); 8350 } 8351 8343 8352 template <typename CharacterType> 8344 8353 static inline TextRun constructTextRunInternal(RenderObject* context, const Font& font, const CharacterType* characters, int length, RenderStyle* style, TextRun::ExpansionBehavior expansion) -
trunk/Source/WebCore/rendering/RenderBlock.h
r155302 r155368 1265 1265 bool hasRightObjects() const { return m_rightObjectsCount > 0; } 1266 1266 const FloatingObjectSet& set() const { return m_set; } 1267 const FloatingObjectTree& placedFloatsTree()1268 {1269 computePlacedFloatsTreeIfNeeded();1270 return m_placedFloatsTree;1271 }1272 1267 void clearLineBoxTreePointers(); 1268 LayoutUnit logicalLeftOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode = ShapeOutsideFloatShapeOffset, LayoutUnit* heightRemaining = 0); 1269 LayoutUnit logicalRightOffset(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit logicalHeight, ShapeOutsideFloatOffsetMode = ShapeOutsideFloatShapeOffset, LayoutUnit* heightRemaining = 0); 1273 1270 private: 1274 1271 FloatingObjects(const RenderBlock*, bool horizontalWritingMode); 1275 1272 void computePlacedFloatsTree(); 1276 inline void computePlacedFloatsTreeIfNeeded()1273 const FloatingObjectTree& placedFloatsTree() 1277 1274 { 1278 1275 if (!m_placedFloatsTree.isInitialized()) 1279 1276 computePlacedFloatsTree(); 1277 return m_placedFloatsTree; 1280 1278 } 1281 1279 void increaseObjectsCount(FloatingObject::Type);
Note:
See TracChangeset
for help on using the changeset viewer.