diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
commit | a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (patch) | |
tree | b7abd9f49ae1d4d2e426a5883bfccd42b8e2ee12 /Source/WebCore/rendering/RenderRegion.h | |
parent | 8d473cf9743f1d30a16a27114e93bd5af5648d23 (diff) | |
download | qtwebkit-a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd.tar.gz |
Imported WebKit commit eb5c1b8fe4d4b1b90b5137433fc58a91da0e6878 (http://svn.webkit.org/repository/webkit/trunk@118516)
Diffstat (limited to 'Source/WebCore/rendering/RenderRegion.h')
-rw-r--r-- | Source/WebCore/rendering/RenderRegion.h | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/Source/WebCore/rendering/RenderRegion.h b/Source/WebCore/rendering/RenderRegion.h index 1e10bb3ba..fb9afa467 100644 --- a/Source/WebCore/rendering/RenderRegion.h +++ b/Source/WebCore/rendering/RenderRegion.h @@ -82,7 +82,7 @@ public: bool isFirstRegion() const; bool isLastRegion() const; - void clearBoxStyleInRegion(const RenderBox*); + void clearObjectStyleInRegion(const RenderObject*); enum RegionState { RegionUndefined, @@ -98,11 +98,12 @@ public: private: virtual const char* renderName() const { return "RenderRegion"; } - PassRefPtr<RenderStyle> renderBoxRegionStyle(const RenderBox*); - PassRefPtr<RenderStyle> computeStyleInRegion(const RenderBox*); - void setRegionBoxesRegionStyle(); - void restoreRegionBoxesOriginalStyle(); - + PassRefPtr<RenderStyle> computeStyleInRegion(const RenderObject*); + void computeChildrenStyleInRegion(const RenderObject*); + void setRegionObjectsRegionStyle(); + void restoreRegionObjectsOriginalStyle(); + void setObjectStyleInRegion(RenderObject*, PassRefPtr<RenderStyle>, bool objectRegionStyleCached); + void printRegionObjectsStyles(); RenderFlowThread* m_flowThread; // If this RenderRegion is displayed as part of another named flow, @@ -118,8 +119,18 @@ private: typedef HashMap<const RenderBox*, OwnPtr<RenderBoxRegionInfo> > RenderBoxRegionInfoMap; RenderBoxRegionInfoMap m_renderBoxRegionInfo; - typedef HashMap<const RenderBox*, RefPtr<RenderStyle> > RenderBoxRegionStyleMap; - RenderBoxRegionStyleMap m_renderBoxRegionStyle; + struct ObjectRegionStyleInfo { + // Used to store the original style of the object in region + // so that the original style is properly restored after paint. + // Also used to store computed style of the object in region between + // region paintings, so that the style in region is computed only + // when necessary. + RefPtr<RenderStyle> style; + // True if the computed style in region is cached. + bool cached; + }; + typedef HashMap<const RenderObject*, ObjectRegionStyleInfo > RenderObjectRegionStyleMap; + RenderObjectRegionStyleMap m_renderObjectRegionStyle; bool m_isValid; bool m_hasCustomRegionStyle; |