Index: Source/core/rendering/RenderBoxModelObject.h |
diff --git a/Source/core/rendering/RenderBoxModelObject.h b/Source/core/rendering/RenderBoxModelObject.h |
index 6a94808895184c0077138406f15ed415988e198a..5a7b635c86d64640b9bfefebc3ba9ded4c6930ec 100644 |
--- a/Source/core/rendering/RenderBoxModelObject.h |
+++ b/Source/core/rendering/RenderBoxModelObject.h |
@@ -199,6 +199,10 @@ protected: |
class BackgroundImageGeometry { |
public: |
+ BackgroundImageGeometry() |
+ : m_hasNonLocalGeometry(false) |
+ { } |
+ |
IntPoint destOrigin() const { return m_destOrigin; } |
void setDestOrigin(const IntPoint& destOrigin) |
{ |
@@ -243,17 +247,22 @@ protected: |
void useFixedAttachment(const IntPoint& attachmentPoint); |
void clip(const IntRect&); |
+ |
+ void setHasNonLocalGeometry(bool hasNonLocalGeometry = true) { m_hasNonLocalGeometry = hasNonLocalGeometry; } |
+ bool hasNonLocalGeometry() const { return m_hasNonLocalGeometry; } |
+ |
private: |
IntRect m_destRect; |
IntPoint m_destOrigin; |
IntPoint m_phase; |
IntSize m_tileSize; |
IntSize m_repeatSpacing; |
+ bool m_hasNonLocalGeometry; // Has background-attachment: fixed. Implies that we can't always cheaply compute destRect. |
}; |
LayoutPoint adjustedPositionRelativeToOffsetParent(const LayoutPoint&) const; |
- void calculateBackgroundImageGeometry(const FillLayer*, const LayoutRect& paintRect, BackgroundImageGeometry&, RenderObject* = 0); |
+ void calculateBackgroundImageGeometry(const RenderLayerModelObject* paintContainer, const FillLayer*, const LayoutRect& paintRect, BackgroundImageGeometry&, RenderObject* = 0) const; |
void getBorderEdgeInfo(class BorderEdge[], const RenderStyle*, bool includeLogicalLeftEdge = true, bool includeLogicalRightEdge = true) const; |
bool borderObscuresBackgroundEdge(const FloatSize& contextScale) const; |
bool borderObscuresBackground() const; |