summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderSVGRoot.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderSVGRoot.h')
-rw-r--r--WebCore/rendering/RenderSVGRoot.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/WebCore/rendering/RenderSVGRoot.h b/WebCore/rendering/RenderSVGRoot.h
index b90113c..63a7b3f 100644
--- a/WebCore/rendering/RenderSVGRoot.h
+++ b/WebCore/rendering/RenderSVGRoot.h
@@ -41,6 +41,8 @@ public:
RenderObjectChildList* children() { return &m_children; }
bool isLayoutSizeChanged() const { return m_isLayoutSizeChanged; }
+ virtual void setNeedsBoundariesUpdate() { m_needsBoundariesOrTransformUpdate = true; }
+ virtual void setNeedsTransformUpdate() { m_needsBoundariesOrTransformUpdate = true; }
private:
virtual RenderObjectChildList* virtualChildren() { return children(); }
@@ -58,6 +60,7 @@ private:
virtual void paint(PaintInfo&, int parentX, int parentY);
virtual void destroy();
+ virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle);
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
virtual void updateFromElement();
@@ -66,9 +69,9 @@ private:
bool fillContains(const FloatPoint&) const;
bool strokeContains(const FloatPoint&) const;
- virtual FloatRect objectBoundingBox() const;
- virtual FloatRect strokeBoundingBox() const;
- virtual FloatRect repaintRectInLocalCoordinates() const;
+ virtual FloatRect objectBoundingBox() const { return m_objectBoundingBox; }
+ virtual FloatRect strokeBoundingBox() const { return m_strokeBoundingBox; }
+ virtual FloatRect repaintRectInLocalCoordinates() const { return m_repaintBoundingBox; }
virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, int x, int y, int tx, int ty, HitTestAction);
@@ -80,6 +83,7 @@ private:
void calcViewport();
bool selfWillPaint();
+ void updateCachedBoundaries();
IntSize parentOriginToBorderBox() const;
IntSize borderOriginToContentBox() const;
@@ -88,8 +92,12 @@ private:
RenderObjectChildList m_children;
FloatSize m_viewportSize;
+ FloatRect m_objectBoundingBox;
+ FloatRect m_strokeBoundingBox;
+ FloatRect m_repaintBoundingBox;
mutable AffineTransform m_localToParentTransform;
bool m_isLayoutSizeChanged : 1;
+ bool m_needsBoundariesOrTransformUpdate : 1;
};
inline RenderSVGRoot* toRenderSVGRoot(RenderObject* object)