| Index: Source/core/layout/FloatingObjects.h
|
| diff --git a/Source/core/layout/FloatingObjects.h b/Source/core/layout/FloatingObjects.h
|
| index d8b23de4d17c1503e4c8ddcc599c0b2425532ccd..615252cb22e786cac2f03003a4f199aaa6e00fb8 100644
|
| --- a/Source/core/layout/FloatingObjects.h
|
| +++ b/Source/core/layout/FloatingObjects.h
|
| @@ -87,6 +87,8 @@ public:
|
| void setShouldPaint(bool shouldPaint) { m_shouldPaint = shouldPaint; }
|
| bool isDescendant() const { return m_isDescendant; }
|
| void setIsDescendant(bool isDescendant) { m_isDescendant = isDescendant; }
|
| + bool isLowestNonOverhangingFloatInChild() const { return m_isLowestNonOverhangingFloatInChild; }
|
| + void setIsLowestNonOverhangingFloatInChild(bool isLowestNonOverhangingFloatInChild) { m_isLowestNonOverhangingFloatInChild = isLowestNonOverhangingFloatInChild; }
|
|
|
| // FIXME: Callers of these methods are dangerous and should be whitelisted explicitly or removed.
|
| RootInlineBox* originatingLine() const { return m_originatingLine; }
|
| @@ -94,7 +96,7 @@ public:
|
|
|
| private:
|
| explicit FloatingObject(LayoutBox*);
|
| - FloatingObject(LayoutBox*, Type, const LayoutRect&, bool shouldPaint, bool isDescendant);
|
| + FloatingObject(LayoutBox*, Type, const LayoutRect&, bool shouldPaint, bool isDescendant, bool isLowestNonOverhangingFloatInChild);
|
|
|
| LayoutBox* m_layoutObject;
|
| RootInlineBox* m_originatingLine;
|
| @@ -105,6 +107,7 @@ private:
|
| unsigned m_shouldPaint : 1;
|
| unsigned m_isDescendant : 1;
|
| unsigned m_isPlaced : 1;
|
| + unsigned m_isLowestNonOverhangingFloatInChild : 1;
|
| #if ENABLE(ASSERT)
|
| unsigned m_isInPlacedTree : 1;
|
| #endif
|
| @@ -158,11 +161,13 @@ public:
|
| LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit fixedOffset, LayoutUnit logicalTop, LayoutUnit* heightRemaining);
|
|
|
| LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type);
|
| + FloatingObject* lowestFloatingObject() { return m_lowestFloatingObject; }
|
|
|
| private:
|
| bool hasLowestFloatLogicalBottomCached(bool isHorizontal, FloatingObject::Type floatType) const;
|
| LayoutUnit getCachedlowestFloatLogicalBottom(FloatingObject::Type floatType) const;
|
| void setCachedLowestFloatLogicalBottom(bool isHorizontal, FloatingObject::Type floatType, LayoutUnit value);
|
| + void setLowestFloatingObject(FloatingObject* object) { m_lowestFloatingObject = object; }
|
| void markLowestFloatLogicalBottomCacheAsDirty();
|
|
|
| void computePlacedFloatsTree();
|
| @@ -190,6 +195,7 @@ private:
|
| };
|
| FloatBottomCachedValue m_lowestFloatBottomCache[2];
|
| bool m_cachedHorizontalWritingMode;
|
| + FloatingObject* m_lowestFloatingObject;
|
| };
|
|
|
| #ifndef NDEBUG
|
|
|